Merge branch 'master' of http://118.145.251.184:3000/OmniAI/omniai-web into fix/ecommerce-video-400-bug

This commit is contained in:
2026-06-02 23:26:23 +08:00
21 changed files with 6948 additions and 535 deletions
+5
View File
@@ -5,6 +5,10 @@
@import "./components/legacy-components.css";
@import "./pages/home.css";
@import "./pages/welcome-splash.css";
@import "./pages/toolbox.css";
@import "./pages/script-review-visual.css";
@import "./pages/script-review-showcase.css";
@import "./pages/model-generation-showcase.css";
@import "./pages/workbench.css";
@import "./pages/ecommerce.css";
@import "./pages/ecommerce-video.css";
@@ -17,6 +21,7 @@
@import "./pages/image-workbench.css";
@import "./pages/subtitle-removal.css";
@import "./pages/size-template.css";
@import "./pages/script-tokens-v5.css";
@import "./pages/script-tokens.css";
@import "./pages/profile.css";
@import "./pages/canvas.css";
+310 -1
View File
@@ -468,7 +468,7 @@
pointer-events: none;
}
.omni-home__feature-page.is-token::before {
.omni-home__feature-page.is-model::before {
background:
linear-gradient(90deg, rgb(5 8 13 / 96%) 0%, rgb(5 8 13 / 80%) 42%, rgb(5 8 13 / 48%) 100%),
linear-gradient(180deg, rgb(255 255 255 / 6%), transparent 34%);
@@ -594,6 +594,258 @@
filter: saturate(1.1) contrast(1.06) brightness(1.04);
}
.omni-home__feature-page.is-model .omni-home__feature-visual {
aspect-ratio: 16 / 9;
min-height: clamp(360px, 36vw, 620px);
max-height: min(68vh, 680px);
border-color: rgb(255 255 255 / 14%);
border-radius: 8px;
background: #0a0b12;
box-shadow:
0 34px 90px rgb(0 0 0 / 42%),
inset 0 1px 0 rgb(255 255 255 / 7%);
}
.omni-home__feature-page.is-ecommerce .omni-home__feature-visual {
aspect-ratio: 16 / 9;
min-height: clamp(360px, 36vw, 620px);
max-height: min(68vh, 680px);
border-color: rgb(255 255 255 / 14%);
border-radius: 8px;
background: #101214;
box-shadow:
0 34px 90px rgb(0 0 0 / 42%),
inset 0 1px 0 rgb(255 255 255 / 7%);
}
.omni-home-ecommerce-showcase {
position: relative;
isolation: isolate;
display: grid;
grid-template-columns: minmax(240px, 0.86fr) minmax(360px, 1.14fr);
grid-template-rows: auto 1fr;
gap: clamp(16px, 2vw, 28px);
width: 100%;
height: 100%;
overflow: hidden;
padding: clamp(22px, 3vw, 38px);
background:
linear-gradient(145deg, rgb(255 255 255 / 5%), transparent 28%),
linear-gradient(180deg, #181b1d 0%, #0d0f10 100%);
}
.omni-home-ecommerce-showcase__depth,
.omni-home-ecommerce-showcase__grain {
position: absolute;
inset: 0;
pointer-events: none;
}
.omni-home-ecommerce-showcase__depth {
z-index: -2;
background:
linear-gradient(90deg, rgb(255 255 255 / 5%) 1px, transparent 1px),
linear-gradient(180deg, rgb(255 255 255 / 4%) 1px, transparent 1px),
radial-gradient(circle at 50% 50%, transparent 0 42%, rgb(0 0 0 / 36%) 78%),
linear-gradient(140deg, rgb(0 255 136 / 10%), transparent 40%);
background-size: 32px 32px, 32px 32px, 100% 100%, 100% 100%;
}
.omni-home-ecommerce-showcase__grain {
z-index: -1;
opacity: 0.22;
background:
repeating-linear-gradient(0deg, rgb(255 255 255 / 4%) 0 1px, transparent 1px 4px),
repeating-linear-gradient(90deg, rgb(255 255 255 / 3%) 0 1px, transparent 1px 5px);
mix-blend-mode: soft-light;
}
.omni-home-ecommerce-showcase__prompt {
display: grid;
align-content: center;
gap: 8px;
min-height: 152px;
border: 1px solid rgb(0 255 136 / 42%);
border-radius: 8px;
background:
linear-gradient(135deg, rgb(0 255 136 / 12%), rgb(255 255 255 / 7%)),
rgb(18 21 22 / 84%);
padding: clamp(18px, 2.2vw, 26px);
box-shadow:
0 0 0 1px rgb(0 255 136 / 10%),
0 20px 58px rgb(0 255 136 / 10%),
inset 0 1px 0 rgb(255 255 255 / 10%);
backdrop-filter: blur(20px);
}
.omni-home-ecommerce-showcase__prompt span {
color: rgb(0 255 136 / 86%);
font-size: clamp(13px, 1vw, 16px);
font-weight: 900;
}
.omni-home-ecommerce-showcase__prompt strong {
color: #f7faf8;
font-size: clamp(26px, 2.5vw, 44px);
font-weight: 950;
line-height: 1.08;
}
.omni-home-ecommerce-showcase__prompt p {
max-width: 420px;
margin: 0;
color: rgb(232 238 236 / 76%);
font-size: clamp(14px, 1.18vw, 18px);
font-weight: 700;
line-height: 1.55;
}
.omni-home-ecommerce-showcase__tools {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
align-self: end;
gap: 12px;
}
.omni-home-ecommerce-showcase__tool {
display: grid;
gap: 6px;
min-height: 92px;
align-content: center;
border: 1px solid rgb(255 255 255 / 12%);
border-radius: 8px;
background: rgb(255 255 255 / 7%);
padding: 15px 16px;
box-shadow: 0 18px 42px rgb(0 0 0 / 20%);
backdrop-filter: blur(20px);
transition:
transform 220ms cubic-bezier(0.16, 1, 0.3, 1),
border-color 220ms ease,
background 220ms ease;
}
.omni-home-ecommerce-showcase__tool:hover {
border-color: rgb(0 255 136 / 36%);
background: rgb(0 255 136 / 9%);
transform: translateY(-3px) scale(1.01);
}
.omni-home-ecommerce-showcase__tool b {
color: #ffffff;
font-size: clamp(20px, 1.7vw, 28px);
font-weight: 950;
line-height: 1;
}
.omni-home-ecommerce-showcase__tool small {
color: rgb(232 238 236 / 58%);
font-size: clamp(12px, 1vw, 15px);
font-weight: 800;
}
.omni-home-ecommerce-showcase__gallery {
position: relative;
grid-row: 1 / 3;
min-height: 0;
}
.omni-home-ecommerce-showcase__shot {
position: absolute;
display: grid;
grid-template-rows: minmax(0, 1fr) auto;
overflow: hidden;
border: 1px solid rgb(255 255 255 / 14%);
border-radius: 8px;
background: rgb(255 255 255 / 8%);
box-shadow:
0 24px 62px rgb(0 0 0 / 32%),
inset 0 1px 0 rgb(255 255 255 / 8%);
backdrop-filter: blur(20px);
transition:
transform 240ms cubic-bezier(0.16, 1, 0.3, 1),
border-color 220ms ease,
box-shadow 220ms ease;
}
.omni-home-ecommerce-showcase__shot:hover {
border-color: rgb(0 255 136 / 32%);
box-shadow: 0 30px 76px rgb(0 0 0 / 40%);
transform: translateY(-4px) scale(1.015);
}
.omni-home-ecommerce-showcase__shot.is-1 {
z-index: 3;
top: 3%;
left: 18%;
width: 61%;
height: 65%;
}
.omni-home-ecommerce-showcase__shot.is-2 {
z-index: 2;
bottom: 2%;
left: 0;
width: 47%;
height: 43%;
}
.omni-home-ecommerce-showcase__shot.is-3 {
z-index: 2;
right: 0;
bottom: 0;
width: 48%;
height: 45%;
}
.omni-home-ecommerce-showcase__shot img {
width: 100%;
height: 100%;
min-height: 0;
object-fit: cover;
object-position: center;
filter: saturate(0.96) contrast(1.02);
transform: none;
}
.omni-home-ecommerce-showcase__shot:hover img {
transform: none;
filter: saturate(1.02) contrast(1.04);
}
.omni-home-ecommerce-showcase__shot > div {
display: grid;
gap: 3px;
border-top: 1px solid rgb(255 255 255 / 10%);
background: rgb(12 14 15 / 88%);
padding: 12px 14px 13px;
}
.omni-home-ecommerce-showcase__shot span {
justify-self: start;
border: 1px solid rgb(0 255 136 / 30%);
border-radius: 999px;
background: rgb(0 255 136 / 10%);
color: rgb(0 255 136 / 92%);
padding: 3px 9px;
font-size: 12px;
font-weight: 950;
line-height: 1;
}
.omni-home-ecommerce-showcase__shot strong {
color: #f7faf8;
font-size: clamp(15px, 1.15vw, 20px);
font-weight: 950;
line-height: 1.15;
}
.omni-home-ecommerce-showcase__shot small {
color: rgb(232 238 236 / 58%);
font-size: clamp(11px, 0.92vw, 14px);
font-weight: 800;
}
.omni-home__feature-stats {
position: absolute;
right: clamp(22px, 7vw, 92px);
@@ -841,6 +1093,21 @@
max-height: none;
}
.omni-home__feature-page.is-model .omni-home__feature-visual,
.omni-home__feature-page.is-ecommerce .omni-home__feature-visual {
min-height: 620px;
}
.omni-home-ecommerce-showcase {
grid-template-columns: 1fr;
grid-template-rows: auto auto minmax(360px, 1fr);
}
.omni-home-ecommerce-showcase__gallery {
grid-row: auto;
min-height: 360px;
}
.omni-home__feature-stats {
right: 22px;
left: 22px;
@@ -906,6 +1173,48 @@
border-radius: 12px;
}
.omni-home__feature-page.is-ecommerce .omni-home__feature-visual {
min-height: 0;
aspect-ratio: auto;
border-radius: 8px;
}
.omni-home-ecommerce-showcase {
gap: 14px;
padding: 14px;
}
.omni-home-ecommerce-showcase__prompt {
min-height: 130px;
}
.omni-home-ecommerce-showcase__tools {
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.omni-home-ecommerce-showcase__tool {
min-height: 78px;
padding: 12px;
}
.omni-home-ecommerce-showcase__gallery {
display: grid;
gap: 12px;
min-height: 0;
}
.omni-home-ecommerce-showcase__shot,
.omni-home-ecommerce-showcase__shot.is-1,
.omni-home-ecommerce-showcase__shot.is-2,
.omni-home-ecommerce-showcase__shot.is-3 {
position: relative;
inset: auto;
width: 100%;
height: auto;
aspect-ratio: 4 / 3;
}
.omni-home__feature-stats {
bottom: 34px;
}
@@ -0,0 +1,787 @@
/* ===== Model Generation Showcase ===== */
.omni-model-gen-showcase {
--mgs-green: #00ff88;
--mgs-blue: #4fc3f7;
--mgs-purple: #a855f7;
--mgs-bg: #0a0b12;
--mgs-surface: rgba(14, 16, 38, 0.75);
--mgs-elevated: rgba(20, 22, 52, 0.85);
--mgs-border-subtle: rgba(0, 255, 136, 0.08);
--mgs-border-default: rgba(0, 255, 136, 0.14);
--mgs-border-hover: rgba(0, 255, 136, 0.28);
--mgs-text-primary: #eef0f6;
--mgs-text-secondary: #8b8fa7;
--mgs-text-muted: #5a5e78;
display: flex;
gap: 10px;
width: 100%;
height: 100%;
padding: 8px 10px;
background: var(--mgs-bg);
color: var(--mgs-text-primary);
font-family: "Inter", "Noto Sans SC", sans-serif;
overflow: hidden;
}
/* ===== Left Panel ===== */
.mgs-left-panel {
width: 166px;
min-width: 166px;
display: flex;
flex-direction: column;
gap: 8px;
}
.mgs-brand-section {
padding: 2px 0;
}
.mgs-brand-section h1 {
font-size: 13px;
font-weight: 900;
line-height: 1.25;
background: linear-gradient(135deg, var(--mgs-green), var(--mgs-blue));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
margin: 0 0 4px;
}
.mgs-subtitle {
font-size: 8px;
line-height: 1.5;
color: var(--mgs-text-secondary);
margin: 0;
}
/* Mode Tabs */
.mgs-mode-tabs {
display: flex;
flex-direction: column;
gap: 4px;
}
.mgs-mode-tab {
display: flex;
align-items: center;
gap: 7px;
padding: 7px 9px;
border-radius: 8px;
background: var(--mgs-surface);
border: 1px solid var(--mgs-border-subtle);
cursor: pointer;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
}
.mgs-mode-tab::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(0, 255, 136, 0.05), transparent);
opacity: 0;
transition: opacity 0.3s;
}
.mgs-mode-tab:hover {
border-color: var(--mgs-border-hover);
transform: translateX(3px);
box-shadow: 0 3px 14px rgba(0, 255, 136, 0.08);
}
.mgs-mode-tab:hover::before {
opacity: 1;
}
.mgs-mode-tab.is-active {
border-color: rgba(0, 255, 136, 0.25);
background: var(--mgs-elevated);
box-shadow: 0 0 16px rgba(0, 255, 136, 0.1), inset 0 0 14px rgba(0, 255, 136, 0.03);
}
.mgs-mode-tab.is-active::before {
opacity: 1;
}
.mgs-mode-icon {
width: 26px;
height: 26px;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
font-size: 13px;
flex-shrink: 0;
background: rgba(0, 255, 136, 0.08);
transition: all 0.3s;
}
.mgs-mode-tab.is-active .mgs-mode-icon {
background: rgba(0, 255, 136, 0.15);
box-shadow: 0 0 8px rgba(0, 255, 136, 0.2);
}
.mgs-mode-info h3 {
font-size: 9px;
font-weight: 700;
margin: 0 0 1px;
transition: color 0.3s;
}
.mgs-mode-tab.is-active .mgs-mode-info h3 {
color: var(--mgs-green);
}
.mgs-mode-info p {
font-size: 7px;
color: var(--mgs-text-muted);
line-height: 1.3;
margin: 0;
}
/* Workflow */
.mgs-workflow {
margin-top: auto;
padding: 8px 10px;
border-radius: 8px;
background: var(--mgs-surface);
border: 1px solid var(--mgs-border-subtle);
position: relative;
overflow: hidden;
}
.mgs-workflow::after {
content: "";
position: absolute;
top: 0;
left: -100%;
width: 50%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(0, 255, 136, 0.06), transparent);
animation: mgs-flow 3s ease-in-out infinite;
}
@keyframes mgs-flow {
0% { left: -100%; }
100% { left: 200%; }
}
.mgs-workflow-title {
font-size: 7px;
color: var(--mgs-text-muted);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 6px;
}
.mgs-workflow-steps {
display: flex;
align-items: center;
gap: 2px;
font-size: 7px;
font-weight: 600;
}
.mgs-wf-step {
flex: 1;
text-align: center;
padding: 4px 2px;
border-radius: 4px;
color: var(--mgs-text-secondary);
background: rgba(0, 255, 136, 0.04);
border: 1px solid var(--mgs-border-subtle);
transition: all 0.3s;
white-space: nowrap;
}
.mgs-wf-step.is-active {
color: var(--mgs-green);
border-color: rgba(0, 255, 136, 0.2);
background: rgba(0, 255, 136, 0.08);
animation: mgs-step-pulse 2s ease-in-out infinite;
}
@keyframes mgs-step-pulse {
0%, 100% { box-shadow: 0 0 0 rgba(0, 255, 136, 0); }
50% { box-shadow: 0 0 6px rgba(0, 255, 136, 0.15); }
}
.mgs-wf-arrow {
color: var(--mgs-text-muted);
font-size: 7px;
flex-shrink: 0;
}
/* ===== Center Area ===== */
.mgs-center-area {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
min-width: 0;
}
.mgs-input-card {
width: 100%;
max-width: 380px;
border-radius: 12px;
background: var(--mgs-elevated);
border: 1px solid var(--mgs-border-default);
padding: 14px;
position: relative;
box-shadow: 0 0 24px rgba(0, 255, 136, 0.04), 0 4px 16px rgba(0, 0, 0, 0.2);
}
.mgs-card-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 8px;
}
.mgs-card-mode-badge {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 2px 8px;
border-radius: 12px;
font-size: 8px;
font-weight: 700;
background: rgba(0, 255, 136, 0.1);
color: var(--mgs-green);
border: 1px solid rgba(0, 255, 136, 0.15);
}
.mgs-dot {
width: 4px;
height: 4px;
border-radius: 50%;
background: var(--mgs-green);
animation: mgs-pulse 2s infinite;
}
@keyframes mgs-pulse {
0%, 100% { opacity: 1; transform: scale(1); }
50% { opacity: 0.5; transform: scale(0.8); }
}
.mgs-card-status {
font-size: 7px;
color: var(--mgs-text-muted);
}
/* Prompt Area */
.mgs-prompt-area {
margin-bottom: 8px;
}
.mgs-prompt-input {
width: 100%;
padding: 6px 8px;
border-radius: 6px;
background: rgba(0, 0, 0, 0.3);
border: 1px solid var(--mgs-border-default);
color: var(--mgs-text-primary);
font-size: 8px;
font-family: inherit;
outline: none;
resize: none;
height: 36px;
}
.mgs-prompt-input::placeholder {
color: var(--mgs-text-muted);
}
.mgs-prompt-input:focus {
border-color: rgba(0, 255, 136, 0.3);
}
/* Options */
.mgs-options {
display: flex;
gap: 4px;
margin-bottom: 8px;
flex-wrap: wrap;
}
.mgs-opt {
padding: 3px 7px;
border-radius: 5px;
font-size: 7px;
font-weight: 600;
background: rgba(0, 255, 136, 0.06);
border: 1px solid var(--mgs-border-subtle);
color: var(--mgs-text-secondary);
cursor: pointer;
transition: all 0.3s;
}
.mgs-opt:hover {
border-color: var(--mgs-border-hover);
color: var(--mgs-green);
}
.mgs-opt.is-selected {
border-color: rgba(0, 255, 136, 0.25);
color: var(--mgs-green);
background: rgba(0, 255, 136, 0.1);
}
/* Agent Result */
.mgs-agent-output-area {
margin-bottom: 8px;
}
.mgs-agent-result {
padding: 8px 10px;
border-radius: 8px;
background: rgba(0, 255, 136, 0.04);
border: 1px solid var(--mgs-border-subtle);
}
.mgs-agent-result-label {
font-size: 7px;
font-weight: 700;
color: var(--mgs-green);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 4px;
display: flex;
align-items: center;
gap: 4px;
}
.mgs-agent-result-label::before {
content: "";
width: 4px;
height: 4px;
border-radius: 50%;
background: var(--mgs-green);
animation: mgs-pulse 2s infinite;
}
.mgs-agent-result-text {
font-size: 8px;
line-height: 1.5;
color: var(--mgs-text-secondary);
}
/* Chat Input */
.mgs-chat-input-row {
display: flex;
gap: 4px;
align-items: center;
}
.mgs-chat-input {
flex: 1;
padding: 5px 8px;
border-radius: 6px;
background: rgba(0, 0, 0, 0.3);
border: 1px solid var(--mgs-border-default);
color: var(--mgs-text-primary);
font-size: 8px;
font-family: inherit;
outline: none;
}
.mgs-chat-input::placeholder {
color: var(--mgs-text-muted);
}
.mgs-chat-send {
padding: 5px 12px;
border-radius: 6px;
border: none;
background: var(--mgs-green);
color: #0a0b12;
cursor: pointer;
font-size: 8px;
font-weight: 700;
box-shadow: 0 0 8px rgba(0, 255, 136, 0.2);
white-space: nowrap;
}
/* Image Grid */
.mgs-img-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 5px;
}
.mgs-img-cell {
aspect-ratio: 4 / 3;
border-radius: 6px;
background: linear-gradient(135deg, rgba(0, 255, 136, 0.05), rgba(79, 195, 247, 0.03));
border: 1px solid var(--mgs-border-subtle);
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
color: var(--mgs-text-muted);
transition: all 0.3s;
}
.mgs-img-cell:hover {
border-color: var(--mgs-border-hover);
transform: scale(1.02);
}
/* Video Config */
.mgs-video-config {
margin-bottom: 8px;
}
.mgs-config-row {
display: flex;
align-items: center;
justify-content: space-between;
padding: 4px 0;
border-bottom: 1px solid var(--mgs-border-subtle);
font-size: 7px;
}
.mgs-config-row:last-child {
border-bottom: none;
}
.mgs-config-label {
color: var(--mgs-text-secondary);
font-weight: 500;
}
.mgs-config-value {
color: var(--mgs-green);
font-weight: 600;
padding: 2px 6px;
border-radius: 4px;
background: rgba(0, 255, 136, 0.08);
}
/* Video Preview */
.mgs-video-preview {
aspect-ratio: 16 / 9;
border-radius: 8px;
background: linear-gradient(135deg, rgba(0, 255, 136, 0.04), rgba(168, 85, 247, 0.04));
border: 1px solid var(--mgs-border-subtle);
display: flex;
align-items: center;
justify-content: center;
}
.mgs-play-btn {
width: 32px;
height: 32px;
border-radius: 50%;
background: rgba(0, 255, 136, 0.15);
border: 2px solid rgba(0, 255, 136, 0.3);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s;
}
.mgs-play-btn:hover {
background: rgba(0, 255, 136, 0.25);
transform: scale(1.08);
box-shadow: 0 0 14px rgba(0, 255, 136, 0.2);
}
.mgs-play-btn svg {
fill: var(--mgs-green);
width: 12px;
height: 12px;
margin-left: 1px;
}
.mgs-video-timeline {
margin-top: 6px;
height: 3px;
border-radius: 2px;
background: rgba(0, 255, 136, 0.1);
overflow: hidden;
}
.mgs-video-timeline-fill {
height: 100%;
width: 35%;
border-radius: 2px;
background: linear-gradient(90deg, var(--mgs-green), var(--mgs-blue));
animation: mgs-timeline 3s ease-in-out infinite;
}
@keyframes mgs-timeline {
0%, 100% { width: 30%; }
50% { width: 45%; }
}
/* ===== Right Panel ===== */
.mgs-right-panel {
width: 168px;
min-width: 168px;
display: flex;
flex-direction: column;
gap: 6px;
overflow-y: auto;
}
.mgs-right-panel::-webkit-scrollbar {
width: 2px;
}
.mgs-right-panel::-webkit-scrollbar-thumb {
background: rgba(0, 255, 136, 0.12);
border-radius: 2px;
}
.mgs-output-section {
flex: 1;
display: flex;
flex-direction: column;
min-height: 0;
}
.mgs-section-label {
font-size: 7px;
font-weight: 700;
color: var(--mgs-text-muted);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 4px;
display: flex;
align-items: center;
gap: 4px;
}
.mgs-section-dot {
width: 4px;
height: 4px;
border-radius: 50%;
animation: mgs-pulse 2s infinite;
}
.mgs-section-dot.is-green { background: var(--mgs-green); }
.mgs-section-dot.is-blue { background: var(--mgs-blue); }
.mgs-section-dot.is-purple { background: var(--mgs-purple); }
.mgs-output-cards {
display: flex;
flex-direction: column;
gap: 6px;
flex: 1;
}
.mgs-out-card {
padding: 8px 10px;
border-radius: 8px;
background: var(--mgs-surface);
border: 1px solid var(--mgs-border-subtle);
cursor: pointer;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
}
.mgs-out-card::before {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(135deg, rgba(0, 255, 136, 0.03), transparent);
opacity: 0;
transition: opacity 0.3s;
}
.mgs-out-card:hover {
border-color: var(--mgs-border-hover);
transform: translateY(-2px);
box-shadow: 0 5px 16px rgba(0, 255, 136, 0.06);
}
.mgs-out-card:hover::before {
opacity: 1;
}
.mgs-out-card-top {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 4px;
}
.mgs-out-tag {
font-size: 7px;
font-weight: 700;
padding: 1px 6px;
border-radius: 4px;
background: rgba(0, 255, 136, 0.1);
color: var(--mgs-green);
letter-spacing: 0.5px;
}
.mgs-out-tag.is-img {
background: rgba(79, 195, 247, 0.1);
color: var(--mgs-blue);
}
.mgs-out-tag.is-video {
background: rgba(168, 85, 247, 0.1);
color: var(--mgs-purple);
}
.mgs-out-title {
font-size: 9px;
font-weight: 700;
}
.mgs-out-preview {
font-size: 8px;
color: var(--mgs-text-secondary);
line-height: 1.45;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.mgs-out-img-placeholder {
height: 40px;
border-radius: 5px;
margin-top: 4px;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
}
.mgs-out-img-placeholder.is-realistic {
background: linear-gradient(135deg, rgba(0, 255, 136, 0.06), rgba(0, 255, 136, 0.02));
border: 1px dashed rgba(0, 255, 136, 0.12);
}
.mgs-out-img-placeholder.is-illustration {
background: linear-gradient(135deg, rgba(79, 195, 247, 0.06), rgba(168, 85, 247, 0.04));
border: 1px dashed rgba(79, 195, 247, 0.12);
}
.mgs-out-img-placeholder.is-ecommerce {
background: linear-gradient(135deg, rgba(168, 85, 247, 0.06), rgba(0, 255, 136, 0.03));
border: 1px dashed rgba(168, 85, 247, 0.12);
}
.mgs-out-video-placeholder {
height: 36px;
border-radius: 5px;
margin-top: 4px;
background: linear-gradient(135deg, rgba(168, 85, 247, 0.06), rgba(0, 255, 136, 0.03));
border: 1px dashed rgba(168, 85, 247, 0.12);
display: flex;
align-items: center;
justify-content: center;
gap: 5px;
}
.mgs-mini-play {
width: 18px;
height: 18px;
border-radius: 50%;
background: rgba(168, 85, 247, 0.2);
border: 1.5px solid rgba(168, 85, 247, 0.3);
display: flex;
align-items: center;
justify-content: center;
}
.mgs-mini-play svg {
fill: var(--mgs-purple);
width: 7px;
height: 7px;
margin-left: 1px;
}
.mgs-video-duration {
font-size: 7px;
color: var(--mgs-text-muted);
}
/* ===== Responsive ===== */
@media (max-width: 980px) {
.omni-model-gen-showcase {
flex-direction: column;
gap: 8px;
padding: 6px;
overflow-y: auto;
}
.mgs-left-panel {
width: 100%;
min-width: 0;
flex-direction: column;
}
.mgs-mode-tabs {
flex-direction: row;
gap: 4px;
}
.mgs-mode-tab {
flex: 1;
flex-direction: column;
align-items: center;
text-align: center;
gap: 3px;
padding: 6px;
}
.mgs-mode-tab:hover {
transform: translateY(-2px);
}
.mgs-mode-icon {
width: 22px;
height: 22px;
font-size: 11px;
}
.mgs-mode-info h3 {
font-size: 8px;
}
.mgs-mode-info p {
display: none;
}
.mgs-workflow {
display: none;
}
.mgs-center-area {
min-height: 200px;
}
.mgs-right-panel {
width: 100%;
min-width: 0;
flex-direction: row;
gap: 6px;
overflow-x: auto;
}
.mgs-output-cards {
flex-direction: row;
}
.mgs-out-card {
min-width: 150px;
flex: 0 0 auto;
}
}
@media (max-width: 560px) {
.mgs-input-card {
padding: 10px;
}
}
+478
View File
@@ -0,0 +1,478 @@
/* ===== Script Review Showcase ===== */
.omni-script-review-showcase {
display: flex;
flex-direction: column;
gap: 8px;
width: 100%;
height: 100%;
padding: 10px 12px;
background: #0a0b12;
color: #eeeef6;
font-family: "Inter", "Noto Sans SC", sans-serif;
overflow: hidden;
}
/* Score Hero */
.srs-score-hero {
display: flex;
align-items: center;
gap: 12px;
padding: 8px 14px;
border-radius: 12px;
background: rgba(20, 22, 52, 0.85);
border: 1px solid rgba(0, 255, 136, 0.14);
flex: 0 0 auto;
position: relative;
overflow: hidden;
}
.srs-score-hero::before {
content: "";
position: absolute;
inset: -1px;
border-radius: 13px;
background: linear-gradient(135deg, rgba(0, 255, 136, 0.2), rgba(79, 195, 247, 0.12));
z-index: -1;
opacity: 0.5;
filter: blur(1px);
}
.srs-score-left {
display: flex;
align-items: center;
gap: 10px;
}
.srs-score-circle {
width: 52px;
height: 52px;
border-radius: 50%;
background: conic-gradient(#00ff88 0deg, #00ff88 calc(77 * 3.6deg), rgba(255, 255, 255, 0.06) calc(77 * 3.6deg));
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
box-shadow: 0 0 20px rgba(0, 255, 136, 0.15);
animation: srs-glow 3s ease-in-out infinite;
}
@keyframes srs-glow {
0%, 100% { box-shadow: 0 0 20px rgba(0, 255, 136, 0.15); }
50% { box-shadow: 0 0 30px rgba(0, 255, 136, 0.25); }
}
.srs-score-circle-inner {
width: 42px;
height: 42px;
border-radius: 50%;
background: rgba(20, 22, 52, 0.95);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.srs-score-num {
font-size: 18px;
font-weight: 900;
line-height: 1;
}
.srs-score-den {
font-size: 8px;
color: rgba(150, 155, 185, 0.45);
font-weight: 500;
}
.srs-score-meta {
text-align: left;
}
.srs-score-grade {
font-size: 16px;
font-weight: 900;
color: #00ff88;
line-height: 1;
text-shadow: 0 0 16px rgba(0, 255, 136, 0.3);
}
.srs-score-tags {
display: flex;
gap: 4px;
margin-top: 4px;
}
.srs-score-tag {
padding: 1px 6px;
border-radius: 4px;
font-size: 7px;
font-weight: 600;
background: rgba(0, 255, 136, 0.08);
color: #00ff88;
border: 1px solid rgba(0, 255, 136, 0.12);
}
.srs-score-divider {
width: 1px;
height: 40px;
background: linear-gradient(transparent, rgba(255, 255, 255, 0.08), transparent);
flex-shrink: 0;
}
.srs-score-right {
flex: 1;
min-width: 0;
}
.srs-score-proj {
font-size: 9px;
color: rgba(150, 155, 185, 0.45);
margin-bottom: 3px;
font-weight: 500;
}
.srs-score-summary {
font-size: 10px;
line-height: 1.55;
color: rgba(190, 195, 220, 0.72);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
/* Chart Card */
.srs-chart-card {
padding: 8px 12px;
border-radius: 12px;
background: rgba(20, 22, 52, 0.85);
border: 1px solid rgba(0, 255, 136, 0.14);
flex: 1;
display: flex;
flex-direction: column;
min-height: 0;
}
.srs-chart-title {
font-size: 8px;
font-weight: 700;
color: rgba(190, 195, 220, 0.72);
margin-bottom: 6px;
letter-spacing: 1px;
text-transform: uppercase;
}
.srs-chart-body {
display: flex;
align-items: flex-end;
gap: 10px;
flex: 1;
padding-bottom: 2px;
}
.srs-chart-col {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 4px;
height: 100%;
}
.srs-chart-bar-wrap {
flex: 1;
width: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
position: relative;
}
.srs-chart-bar-bg {
width: 100%;
max-width: 42px;
position: absolute;
bottom: 0;
border-radius: 6px 6px 0 0;
background: rgba(255, 255, 255, 0.04);
}
.srs-chart-bar-fill {
width: 100%;
max-width: 42px;
border-radius: 6px 6px 0 0;
background: linear-gradient(180deg, rgba(0, 255, 136, 0.75), #00ff88);
box-shadow: 0 0 10px rgba(0, 255, 136, 0.12);
height: 0;
transition: height 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
position: relative;
}
.srs-chart-bar-fill.is-perfect {
background: linear-gradient(180deg, #00ff88, rgba(0, 255, 136, 0.85));
box-shadow: 0 0 14px rgba(0, 255, 136, 0.3);
}
.srs-chart-bar-fill.is-low {
background: linear-gradient(180deg, rgba(255, 165, 2, 0.65), rgba(255, 165, 2, 0.35));
box-shadow: 0 0 10px rgba(255, 165, 2, 0.12);
}
.srs-chart-bar-score {
position: absolute;
top: -16px;
left: 50%;
transform: translateX(-50%);
font-size: 10px;
font-weight: 900;
white-space: nowrap;
}
.srs-chart-bar-sub {
font-size: 7px;
color: rgba(150, 155, 185, 0.45);
font-weight: 400;
}
.srs-chart-bar-star {
color: #00ff88;
font-size: 8px;
margin-left: 1px;
}
.srs-chart-col-label {
text-align: center;
}
.srs-chart-col-name {
font-size: 9px;
font-weight: 700;
color: #eeeef6;
line-height: 1.3;
}
.srs-chart-col-desc {
font-size: 7px;
color: rgba(150, 155, 185, 0.45);
margin-top: 1px;
line-height: 1.3;
}
/* Triple Section */
.srs-triple-section {
display: flex;
gap: 7px;
flex: 0 0 auto;
}
.srs-section-card {
flex: 1;
padding: 8px 10px;
border-radius: 10px;
position: relative;
overflow: hidden;
transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.srs-section-card:hover {
transform: translateY(-2px);
}
.srs-section-card.is-highlight {
background: rgba(0, 255, 136, 0.03);
border: 1px solid rgba(0, 255, 136, 0.1);
}
.srs-section-card.is-highlight::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, #00ff88, rgba(0, 255, 136, 0.3));
border-radius: 10px 10px 0 0;
}
.srs-section-card.is-highlight:hover {
border-color: rgba(0, 255, 136, 0.22);
box-shadow: 0 6px 24px rgba(0, 255, 136, 0.08);
}
.srs-section-card.is-weakness {
background: rgba(255, 71, 87, 0.02);
border: 1px solid rgba(255, 71, 87, 0.08);
}
.srs-section-card.is-weakness::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, #ff4757, rgba(255, 71, 87, 0.3));
border-radius: 10px 10px 0 0;
}
.srs-section-card.is-weakness:hover {
border-color: rgba(255, 71, 87, 0.2);
box-shadow: 0 6px 24px rgba(255, 71, 87, 0.06);
}
.srs-section-card.is-optimize {
background: rgba(79, 195, 247, 0.02);
border: 1px solid rgba(79, 195, 247, 0.08);
}
.srs-section-card.is-optimize::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
height: 2px;
background: linear-gradient(90deg, #4fc3f7, rgba(79, 195, 247, 0.3));
border-radius: 10px 10px 0 0;
}
.srs-section-card.is-optimize:hover {
border-color: rgba(79, 195, 247, 0.2);
box-shadow: 0 6px 24px rgba(79, 195, 247, 0.06);
}
.srs-section-header {
display: flex;
align-items: center;
gap: 5px;
margin-bottom: 5px;
}
.srs-section-icon {
width: 16px;
height: 16px;
border-radius: 5px;
display: flex;
align-items: center;
justify-content: center;
font-size: 8px;
}
.is-highlight .srs-section-icon { background: rgba(0, 255, 136, 0.12); }
.is-weakness .srs-section-icon { background: rgba(255, 71, 87, 0.12); }
.is-optimize .srs-section-icon { background: rgba(79, 195, 247, 0.12); }
.srs-section-label {
font-size: 10px;
font-weight: 800;
letter-spacing: 0.5px;
}
.is-highlight .srs-section-label { color: #00ff88; }
.is-weakness .srs-section-label { color: #ff4757; }
.is-optimize .srs-section-label { color: #4fc3f7; }
.srs-section-list {
display: flex;
flex-direction: column;
gap: 3px;
}
.srs-section-item {
padding: 4px 6px;
border-radius: 6px;
background: rgba(255, 255, 255, 0.02);
border: 1px solid rgba(255, 255, 255, 0.03);
transition: all 0.2s;
}
.srs-section-item:hover {
background: rgba(255, 255, 255, 0.04);
}
.srs-section-item-head {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 2px;
}
.srs-section-item-dim {
font-size: 9px;
font-weight: 700;
color: #eeeef6;
}
.srs-section-item-score {
font-size: 8px;
font-weight: 700;
}
.srs-section-item-score.is-green { color: #00ff88; }
.srs-section-item-score.is-red { color: #ff4757; }
.srs-section-item-text {
font-size: 8px;
line-height: 1.4;
color: rgba(150, 155, 185, 0.45);
}
.srs-section-item-badge {
font-size: 7px;
font-weight: 700;
padding: 1px 4px;
border-radius: 3px;
letter-spacing: 0.3px;
}
.srs-section-item-badge.badge-red {
background: rgba(255, 71, 87, 0.1);
color: #ff4757;
}
.srs-section-item-badge.badge-orange {
background: rgba(255, 165, 2, 0.1);
color: #ffa502;
}
@media (max-width: 980px) {
.omni-script-review-showcase {
padding: 8px;
gap: 6px;
}
.srs-score-hero {
flex-wrap: wrap;
gap: 8px;
}
.srs-score-divider {
display: none;
}
.srs-triple-section {
flex-direction: column;
gap: 4px;
}
}
@media (max-width: 560px) {
.srs-score-circle {
width: 40px;
height: 40px;
}
.srs-score-circle-inner {
width: 32px;
height: 32px;
}
.srs-score-num {
font-size: 14px;
}
.srs-chart-body {
gap: 6px;
}
}
+264
View File
@@ -0,0 +1,264 @@
/* ===== 剧本评测展示 ===== */
.omni-script-review-visual {
display: flex;
flex-direction: column;
gap: 16px;
width: 100%;
height: 100%;
padding: clamp(14px, 2vw, 24px);
justify-content: center;
}
/* Hero */
.omni-script-review-hero {
display: flex;
flex-direction: column;
gap: 6px;
}
.omni-script-review-score-row {
display: flex;
align-items: flex-end;
gap: 4px;
}
.omni-script-review-num {
font-size: clamp(36px, 5vw, 56px);
font-weight: 800;
color: var(--accent);
line-height: 1;
letter-spacing: -2px;
}
.omni-script-review-total {
font-size: 14px;
color: rgb(255 255 255 / 30%);
font-weight: 400;
margin-bottom: 6px;
}
.omni-script-review-grade {
display: inline-flex;
align-items: center;
gap: 5px;
margin-left: 12px;
margin-bottom: 8px;
padding: 2px 10px;
border-radius: 4px;
background: rgba(0, 255, 136, 0.08);
border: 1px solid rgba(0, 255, 136, 0.2);
font-size: 12px;
font-weight: 600;
color: var(--accent);
}
.omni-script-review-grade-dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: var(--accent);
animation: omni-sr-pulse 2s ease infinite;
}
@keyframes omni-sr-pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.4; }
}
.omni-script-review-bar {
width: 100%;
max-width: 320px;
height: 3px;
border-radius: 2px;
background: rgba(255, 255, 255, 0.08);
overflow: hidden;
}
.omni-script-review-bar-fill {
height: 100%;
border-radius: 2px;
background: var(--accent);
transition: width 1.4s ease;
}
.omni-script-review-beat {
font-size: 11px;
color: rgb(255 255 255 / 30%);
}
.omni-script-review-beat b {
color: var(--accent);
font-weight: 600;
}
/* Chart */
.omni-script-review-chart {
display: flex;
flex-direction: column;
gap: 10px;
flex: 1;
min-height: 0;
}
.omni-script-review-chart-bars {
display: flex;
gap: 10px;
flex: 1;
align-items: flex-end;
min-height: 0;
}
.omni-script-review-bcol {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
cursor: pointer;
min-height: 0;
}
.omni-script-review-bbar-area {
flex: 1;
width: 100%;
display: flex;
flex-direction: column;
justify-content: flex-end;
align-items: center;
min-height: 0;
position: relative;
}
.omni-script-review-bseg {
width: 70%;
min-height: 0;
transition: height 1s cubic-bezier(0.4, 0, 0.2, 1), filter 0.25s, opacity 0.25s;
}
.omni-script-review-bseg.is-score {
background: linear-gradient(180deg, #33ffaa, var(--accent) 40%, #00cc6a);
border-radius: 5px 5px 2px 2px;
position: relative;
overflow: hidden;
}
.omni-script-review-bseg.is-score::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 50%;
bottom: 0;
background: linear-gradient(90deg, rgba(255, 255, 255, 0.1), transparent);
border-radius: 5px 0 0 0;
pointer-events: none;
}
.omni-script-review-bseg.is-perfect {
border-radius: 5px;
}
.omni-script-review-bseg.is-loss {
background: rgba(255, 255, 255, 0.04);
border: 1px dashed rgba(255, 255, 255, 0.1);
border-bottom: none;
border-radius: 2px 2px 0 0;
}
.omni-script-review-bcol:hover .omni-script-review-bseg.is-score {
filter: brightness(1.15);
box-shadow: 0 0 10px rgba(0, 255, 136, 0.15);
}
.omni-script-review-bcol.is-active .omni-script-review-bseg.is-score {
filter: brightness(1.25);
box-shadow: 0 0 14px rgba(0, 255, 136, 0.25);
}
.omni-script-review-bcol.is-dimmed .omni-script-review-bseg {
opacity: 0.2;
}
.omni-script-review-blabel {
text-align: center;
}
.omni-script-review-blabel span {
font-size: clamp(8px, 0.9vw, 10px);
font-weight: 600;
color: rgb(255 255 255 / 55%);
white-space: nowrap;
}
.omni-script-review-bcol:hover .omni-script-review-blabel span,
.omni-script-review-bcol.is-active .omni-script-review-blabel span {
color: var(--accent);
}
.omni-script-review-diminfo {
display: flex;
align-items: center;
gap: 8px;
padding: 4px 0;
animation: omni-sr-fadeUp 0.25s ease;
}
@keyframes omni-sr-fadeUp {
from { opacity: 0; transform: translateY(4px); }
to { opacity: 1; transform: translateY(0); }
}
.omni-script-review-diminfo-name {
font-size: 12px;
font-weight: 700;
color: #fff;
}
.omni-script-review-diminfo-score {
font-size: 22px;
font-weight: 800;
color: var(--accent);
line-height: 1;
}
.omni-script-review-diminfo-score small {
font-size: 12px;
color: rgb(255 255 255 / 30%);
font-weight: 400;
}
.omni-script-review-legend {
display: flex;
gap: 14px;
justify-content: flex-end;
font-size: 9px;
color: rgb(255 255 255 / 30%);
}
.omni-script-review-legend-dot {
display: inline-block;
width: 6px;
height: 6px;
border-radius: 2px;
vertical-align: middle;
margin-right: 2px;
}
.omni-script-review-legend-dot.is-score {
background: var(--accent);
}
.omni-script-review-legend-dot.is-loss {
background: rgba(255, 255, 255, 0.04);
border: 1px dashed rgba(255, 255, 255, 0.15);
}
@media (max-width: 560px) {
.omni-script-review-chart-bars {
gap: 6px;
}
.omni-script-review-bseg {
width: 80%;
}
}
File diff suppressed because it is too large Load Diff
+884
View File
@@ -0,0 +1,884 @@
/* ===== 工具箱功能页 ===== */
.omni-home__toolbox-page {
--toolbox-green: #00ff88;
--toolbox-blue: #4fc3f7;
--toolbox-purple: #a855f7;
--toolbox-surface: rgba(14, 16, 38, 0.75);
--toolbox-elevated: rgba(20, 22, 52, 0.85);
--toolbox-highlight: rgba(28, 31, 68, 0.9);
--toolbox-border-subtle: rgba(0, 255, 136, 0.08);
--toolbox-border-default: rgba(0, 255, 136, 0.14);
--toolbox-border-hover: rgba(0, 255, 136, 0.28);
--toolbox-text-primary: #f0f0f5;
--toolbox-text-secondary: rgba(240, 240, 245, 0.6);
--toolbox-text-tertiary: rgba(240, 240, 245, 0.4);
position: relative;
isolation: isolate;
min-height: var(--home-section-min-height);
border-top: 1px solid rgb(255 255 255 / 8%);
background:
linear-gradient(180deg, #070b10 0%, #05080d 100%),
radial-gradient(ellipse 80% 60% at 50% 40%, rgba(0, 255, 136, 0.04) 0%, transparent 70%),
radial-gradient(ellipse 60% 50% at 80% 70%, rgba(79, 195, 247, 0.03) 0%, transparent 60%),
radial-gradient(ellipse 50% 40% at 20% 80%, rgba(168, 85, 247, 0.03) 0%, transparent 60%);
scroll-snap-align: start;
scroll-snap-stop: normal;
}
.omni-home__toolbox-shell {
position: relative;
z-index: 2;
display: flex;
gap: clamp(20px, 3vw, 40px);
padding: clamp(42px, 6vw, 82px) clamp(22px, 7vw, 92px);
min-height: var(--home-section-min-height);
align-items: center;
}
/* ===== Left Panel ===== */
.omni-home__toolbox-left {
width: clamp(340px, 30vw, 440px);
flex-shrink: 0;
display: flex;
flex-direction: column;
gap: 16px;
justify-content: flex-start;
padding-top: clamp(40px, 8vh, 100px);
}
.omni-home__toolbox-brand {
display: flex;
align-items: center;
gap: 12px;
}
.omni-home__toolbox-brand-icon {
width: 52px;
height: 52px;
background: var(--toolbox-green);
border-radius: 14px;
display: flex;
align-items: center;
justify-content: center;
color: #0a0b12;
font-size: 26px;
}
.omni-home__toolbox-brand-icon .anticon {
font-size: 28px;
}
.omni-home__toolbox-brand-text {
font-weight: 900;
font-size: 30px;
color: #fff;
letter-spacing: -0.5px;
}
.omni-home__toolbox-title {
font-weight: 900;
font-size: clamp(34px, 3.6vw, 46px);
line-height: 1.15;
background: linear-gradient(135deg, var(--toolbox-green), var(--toolbox-blue));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.omni-home__toolbox-subtitle {
font-size: 17px;
line-height: 1.6;
color: var(--toolbox-text-secondary);
}
.omni-home__toolbox-list {
display: flex;
flex-direction: column;
gap: 10px;
margin-top: 8px;
}
.omni-home__toolbox-item {
display: flex;
align-items: flex-start;
gap: 16px;
padding: 18px 22px;
border-radius: 16px;
background: var(--toolbox-surface);
border: 1px solid var(--toolbox-border-subtle);
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
cursor: pointer;
animation: omni-toolbox-fadeSlideIn 0.6s ease both;
}
.omni-home__toolbox-item:nth-child(1) { animation-delay: 0.1s; }
.omni-home__toolbox-item:nth-child(2) { animation-delay: 0.2s; }
.omni-home__toolbox-item:nth-child(3) { animation-delay: 0.3s; }
.omni-home__toolbox-item:nth-child(4) { animation-delay: 0.4s; }
.omni-home__toolbox-item:hover {
border-color: var(--toolbox-border-hover);
transform: translateX(4px);
background: var(--toolbox-elevated);
}
.omni-home__toolbox-item-icon {
font-size: 28px;
flex-shrink: 0;
width: 48px;
height: 48px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 12px;
background: rgba(0, 255, 136, 0.08);
}
.omni-home__toolbox-item-info {
display: flex;
flex-direction: column;
gap: 5px;
}
.omni-home__toolbox-item-name {
font-weight: 700;
font-size: 17px;
color: var(--toolbox-text-primary);
}
.omni-home__toolbox-item-desc {
font-size: 14px;
color: var(--toolbox-text-tertiary);
line-height: 1.5;
}
@keyframes omni-toolbox-fadeSlideIn {
from { opacity: 0; transform: translateX(-12px); }
to { opacity: 1; transform: translateX(0); }
}
.omni-home__toolbox-workflow {
margin-top: auto;
padding: 20px 24px;
border-radius: 16px;
background: var(--toolbox-surface);
border: 1px solid var(--toolbox-border-subtle);
}
.omni-home__toolbox-workflow-label {
font-size: 14px;
font-weight: 700;
color: var(--toolbox-green);
margin-bottom: 12px;
letter-spacing: 0.5px;
text-transform: uppercase;
}
.omni-home__toolbox-workflow-steps {
display: flex;
align-items: center;
gap: 10px;
font-size: 14px;
color: var(--toolbox-text-tertiary);
}
.omni-home__toolbox-workflow-step {
color: var(--toolbox-text-secondary);
}
.omni-home__toolbox-workflow-arrow {
color: var(--toolbox-green);
font-size: 14px;
}
/* ===== Grid Area ===== */
.omni-home__toolbox-grid {
flex: 1;
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
gap: 16px;
min-height: clamp(360px, 40vw, 520px);
}
/* ===== Tool Cards ===== */
.omni-home__toolbox-card {
position: relative;
border-radius: 18px;
background: var(--toolbox-elevated);
border: 1px solid var(--toolbox-border-default);
backdrop-filter: blur(20px);
overflow: hidden;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
display: flex;
flex-direction: column;
cursor: pointer;
animation: omni-toolbox-cardIn 0.7s ease both;
}
.omni-home__toolbox-card:nth-child(1) { animation-delay: 0.15s; }
.omni-home__toolbox-card:nth-child(2) { animation-delay: 0.25s; }
.omni-home__toolbox-card:nth-child(3) { animation-delay: 0.35s; }
.omni-home__toolbox-card:nth-child(4) { animation-delay: 0.45s; }
.omni-home__toolbox-card:hover {
transform: translateY(-6px) scale(1.01);
border-color: var(--toolbox-border-hover);
box-shadow:
0 12px 40px rgba(0, 255, 136, 0.08),
0 0 60px rgba(0, 255, 136, 0.04);
}
@keyframes omni-toolbox-cardIn {
from { opacity: 0; transform: translateY(20px) scale(0.97); }
to { opacity: 1; transform: translateY(0) scale(1); }
}
.omni-home__toolbox-card-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 14px 18px 0;
}
.omni-home__toolbox-card-header-left {
display: flex;
align-items: center;
gap: 10px;
}
.omni-home__toolbox-card-icon {
width: 32px;
height: 32px;
border-radius: 9px;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
background: rgba(0, 255, 136, 0.1);
border: 1px solid rgba(0, 255, 136, 0.12);
}
.omni-home__toolbox-card-title {
font-weight: 900;
font-size: 14px;
color: var(--toolbox-text-primary);
}
.omni-home__toolbox-card-tag {
padding: 3px 10px;
border-radius: 20px;
font-size: 10px;
font-weight: 700;
color: var(--toolbox-green);
background: rgba(0, 255, 136, 0.1);
border: 1px solid rgba(0, 255, 136, 0.2);
letter-spacing: 0.3px;
}
.omni-home__toolbox-card-content {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
padding: 10px 18px;
}
.omni-home__toolbox-card-footer {
padding: 8px 18px 12px;
display: flex;
align-items: center;
gap: 6px;
flex-wrap: wrap;
}
.omni-home__toolbox-card-feat {
padding: 2px 8px;
border-radius: 4px;
font-size: 10px;
color: var(--toolbox-text-tertiary);
background: rgba(255, 255, 255, 0.04);
}
.omni-home__toolbox-card-feat-sep {
color: rgba(0, 255, 136, 0.2);
font-size: 10px;
}
/* === Card 1: 图片工作室 === */
.toolbox-card1-content {
width: 100%;
height: 100%;
display: flex;
gap: 0;
position: relative;
}
.toolbox-card1-side {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 10px;
position: relative;
overflow: hidden;
padding: 6px;
}
.toolbox-card1-left {
background: rgba(255, 255, 255, 0.02);
margin-right: 1px;
}
.toolbox-card1-right {
background: rgba(0, 255, 136, 0.02);
margin-left: 1px;
}
.toolbox-card1-img {
width: 100%;
flex: 1;
border-radius: 8px;
position: relative;
overflow: hidden;
}
.toolbox-card1-img img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
border-radius: 8px;
}
.toolbox-card1-left .toolbox-card1-img {
box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.2);
}
.toolbox-card1-right .toolbox-card1-img {
box-shadow: 0 0 12px rgba(0, 255, 136, 0.06);
}
.toolbox-card1-label {
font-size: 10px;
color: var(--toolbox-text-tertiary);
margin-top: 6px;
font-weight: 700;
letter-spacing: 0.5px;
}
.toolbox-card1-left .toolbox-card1-label {
color: rgba(255, 255, 255, 0.35);
}
.toolbox-card1-right .toolbox-card1-label {
color: rgba(0, 255, 136, 0.5);
}
.toolbox-card1-divider {
width: 1px;
background: linear-gradient(to bottom, transparent, rgba(0, 255, 136, 0.3), transparent);
position: absolute;
left: 50%;
top: 8%;
height: 84%;
}
/* === Card 2: 镜头实验室 === */
.toolbox-card2-content {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
padding: 0 4px;
}
.toolbox-card2-frame {
flex: 1;
height: 85%;
border-radius: 8px;
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-end;
background: linear-gradient(180deg, #1a1d42 0%, #141230 100%);
border: 1px solid rgba(0, 255, 136, 0.06);
transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.toolbox-card2-frame:hover {
border-color: rgba(0, 255, 136, 0.2);
box-shadow: 0 0 16px rgba(0, 255, 136, 0.08);
transform: scale(1.04);
}
.toolbox-card2-product {
position: absolute;
top: 14%;
left: 50%;
transform: translateX(-50%);
width: 55%;
height: 50%;
border-radius: 6px;
transition: all 0.3s;
}
.toolbox-card2-frame:nth-child(1) .toolbox-card2-product {
background: repeating-linear-gradient(0deg, #6b9b7a 0px, #6b9b7a 2px, #d4dfc8 2px, #d4dfc8 4px);
}
.toolbox-card2-frame:nth-child(2) .toolbox-card2-product {
background: repeating-linear-gradient(0deg, #6b9b7a 0px, #6b9b7a 2px, #d4dfc8 2px, #d4dfc8 4px);
transform: translateX(-50%) perspective(200px) rotateY(25deg);
width: 48%;
}
.toolbox-card2-frame:nth-child(3) .toolbox-card2-product {
background: repeating-linear-gradient(90deg, #6b9b7a 0px, #6b9b7a 2px, #d4dfc8 2px, #d4dfc8 4px);
width: 50%;
height: 40%;
border-radius: 50%;
}
.toolbox-card2-frame:nth-child(4) .toolbox-card2-product {
background: repeating-linear-gradient(0deg, #6b9b7a 0px, #6b9b7a 2px, #d4dfc8 2px, #d4dfc8 4px);
width: 58%;
transform: translateX(-50%) perspective(200px) rotateX(-15deg);
}
.toolbox-card2-frame:nth-child(5) .toolbox-card2-product {
background: repeating-linear-gradient(0deg, #5a7a4e 0px, #5a7a4e 2px, #b8c8a8 2px, #b8c8a8 4px);
width: 50%;
opacity: 0.8;
}
.toolbox-card2-shadow {
position: absolute;
top: 66%;
left: 50%;
transform: translateX(-50%);
width: 40%;
height: 4px;
border-radius: 50%;
background: rgba(0, 255, 136, 0.06);
filter: blur(3px);
}
.toolbox-card2-angle-label {
position: relative;
z-index: 1;
font-size: 9px;
font-weight: 700;
color: var(--toolbox-text-tertiary);
margin-bottom: 10%;
letter-spacing: 0.5px;
padding: 2px 8px;
border-radius: 4px;
background: rgba(0, 255, 136, 0.06);
border: 1px solid rgba(0, 255, 136, 0.08);
}
.toolbox-card2-frame:nth-child(1) .toolbox-card2-angle-label {
color: var(--toolbox-green);
background: rgba(0, 255, 136, 0.1);
border-color: rgba(0, 255, 136, 0.2);
}
/* === Card 3: 一键数字人 === */
.toolbox-card3-content {
width: 100%;
height: 100%;
display: flex;
gap: 0;
position: relative;
}
.toolbox-card3-side {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 10px;
position: relative;
overflow: hidden;
}
.toolbox-card3-left {
background: rgba(255, 255, 255, 0.02);
margin-right: 1px;
}
.toolbox-card3-right {
background: rgba(0, 255, 136, 0.02);
margin-left: 1px;
}
.toolbox-card3-portrait {
width: 70%;
aspect-ratio: 3/4;
border-radius: 10px;
position: relative;
overflow: hidden;
}
.toolbox-card3-left .toolbox-card3-portrait {
background: linear-gradient(180deg, #2a2d5e, #1e2050);
box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.3);
}
.toolbox-card3-left .toolbox-card3-portrait::before {
content: '';
position: absolute;
top: 14%;
left: 50%;
transform: translateX(-50%);
width: 32%;
aspect-ratio: 1;
border-radius: 50%;
background: rgba(200, 190, 220, 0.1);
}
.toolbox-card3-left .toolbox-card3-portrait::after {
content: '';
position: absolute;
top: 42%;
left: 50%;
transform: translateX(-50%);
width: 50%;
height: 40%;
border-radius: 20% 20% 5% 5%;
background: rgba(200, 190, 220, 0.06);
}
.toolbox-card3-portrait-mark {
position: absolute;
bottom: 8px;
left: 8px;
font-size: 8px;
font-weight: 700;
color: rgba(255, 255, 255, 0.25);
background: rgba(0, 0, 0, 0.4);
padding: 2px 6px;
border-radius: 3px;
letter-spacing: 1px;
}
.toolbox-card3-right .toolbox-card3-portrait {
background: linear-gradient(180deg, #1a3a2e, #0d2a20);
border: 1px solid rgba(0, 255, 136, 0.12);
box-shadow:
0 0 30px rgba(0, 255, 136, 0.08),
inset 0 0 20px rgba(0, 255, 136, 0.04);
}
.toolbox-card3-right .toolbox-card3-portrait::before {
content: '';
position: absolute;
top: 14%;
left: 50%;
transform: translateX(-50%);
width: 32%;
aspect-ratio: 1;
border-radius: 50%;
background: rgba(0, 255, 136, 0.1);
box-shadow: 0 0 20px rgba(0, 255, 136, 0.15);
}
.toolbox-card3-right .toolbox-card3-portrait::after {
content: '';
position: absolute;
top: 42%;
left: 50%;
transform: translateX(-50%);
width: 50%;
height: 40%;
border-radius: 20% 20% 5% 5%;
background: rgba(0, 255, 136, 0.06);
box-shadow: 0 0 15px rgba(0, 255, 136, 0.08);
}
.toolbox-card3-glow-ring {
position: absolute;
inset: -4px;
border-radius: 14px;
border: 1.5px solid rgba(0, 255, 136, 0.2);
animation: omni-toolbox-glowPulse 2.5s ease-in-out infinite;
}
@keyframes omni-toolbox-glowPulse {
0%, 100% { opacity: 0.3; box-shadow: 0 0 10px rgba(0, 255, 136, 0.05); }
50% { opacity: 1; box-shadow: 0 0 25px rgba(0, 255, 136, 0.15); }
}
.toolbox-card3-lipsync {
position: absolute;
top: 32%;
left: 62%;
display: flex;
align-items: center;
gap: 1.5px;
}
.toolbox-card3-lipsync span {
width: 2px;
border-radius: 1px;
background: var(--toolbox-green);
animation: omni-toolbox-lipsync 0.8s ease-in-out infinite;
}
.toolbox-card3-lipsync span:nth-child(1) { height: 4px; animation-delay: 0s; }
.toolbox-card3-lipsync span:nth-child(2) { height: 8px; animation-delay: 0.1s; }
.toolbox-card3-lipsync span:nth-child(3) { height: 5px; animation-delay: 0.2s; }
.toolbox-card3-lipsync span:nth-child(4) { height: 10px; animation-delay: 0.3s; }
.toolbox-card3-lipsync span:nth-child(5) { height: 4px; animation-delay: 0.4s; }
@keyframes omni-toolbox-lipsync {
0%, 100% { transform: scaleY(1); opacity: 0.6; }
50% { transform: scaleY(0.3); opacity: 1; }
}
.toolbox-card3-gesture {
position: absolute;
top: 55%;
left: 20%;
width: 24px;
height: 2px;
border-radius: 1px;
opacity: 0.5;
}
.toolbox-card3-gesture::before {
content: '';
position: absolute;
inset: 0;
background: linear-gradient(90deg, transparent, rgba(0, 255, 136, 0.5), transparent);
animation: omni-toolbox-gestureMove 2s ease-in-out infinite;
}
.toolbox-card3-gesture::after {
content: '';
position: absolute;
top: -6px;
right: -4px;
width: 8px;
height: 8px;
border-radius: 50%;
border: 1.5px solid rgba(0, 255, 136, 0.3);
animation: omni-toolbox-gestureMove 2s ease-in-out infinite;
}
@keyframes omni-toolbox-gestureMove {
0%, 100% { opacity: 0.2; transform: translateX(0); }
50% { opacity: 0.8; transform: translateX(6px); }
}
.toolbox-card3-live {
position: absolute;
top: 8px;
right: 8px;
font-size: 8px;
font-weight: 900;
color: #0a0b12;
background: var(--toolbox-green);
padding: 2px 7px;
border-radius: 4px;
letter-spacing: 1px;
animation: omni-toolbox-livePulse 1.5s ease-in-out infinite;
}
@keyframes omni-toolbox-livePulse {
0%, 100% { box-shadow: 0 0 6px rgba(0, 255, 136, 0.3); }
50% { box-shadow: 0 0 16px rgba(0, 255, 136, 0.6); }
}
.toolbox-card3-transform {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
z-index: 2;
width: 32px;
height: 32px;
border-radius: 50%;
background: var(--toolbox-green);
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
color: #0a0b12;
box-shadow: 0 0 20px rgba(0, 255, 136, 0.3);
animation: omni-toolbox-transformSpin 3s ease-in-out infinite;
}
@keyframes omni-toolbox-transformSpin {
0%, 100% { box-shadow: 0 0 20px rgba(0, 255, 136, 0.3); }
50% { box-shadow: 0 0 30px rgba(0, 255, 136, 0.5); }
}
.toolbox-card3-label {
font-size: 10px;
font-weight: 700;
letter-spacing: 0.5px;
margin-top: 8px;
}
.toolbox-card3-left .toolbox-card3-label {
color: rgba(255, 255, 255, 0.3);
}
.toolbox-card3-right .toolbox-card3-label {
color: rgba(0, 255, 136, 0.5);
}
.toolbox-card3-divider {
width: 1px;
background: linear-gradient(to bottom, transparent, rgba(0, 255, 136, 0.25), transparent);
position: absolute;
left: 50%;
top: 8%;
height: 84%;
}
/* === Card 4: 去除水印 === */
.toolbox-card4-content {
width: 100%;
height: 100%;
display: flex;
gap: 0;
position: relative;
}
.toolbox-card4-side {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 10px;
position: relative;
overflow: hidden;
}
.toolbox-card4-left {
background: rgba(255, 255, 255, 0.02);
margin-right: 1px;
}
.toolbox-card4-right {
background: rgba(0, 255, 136, 0.02);
margin-left: 1px;
}
.toolbox-card4-img {
width: 100%;
flex: 1;
border-radius: 8px;
position: relative;
overflow: hidden;
}
.toolbox-card4-img img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
border-radius: 8px;
}
.toolbox-card4-left .toolbox-card4-img {
box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.2);
}
.toolbox-card4-right .toolbox-card4-img {
box-shadow: 0 0 12px rgba(0, 255, 136, 0.06);
}
.toolbox-card4-label {
font-size: 10px;
color: var(--toolbox-text-tertiary);
margin-top: 8px;
font-weight: 700;
letter-spacing: 0.5px;
}
.toolbox-card4-left .toolbox-card4-label {
color: rgba(255, 200, 200, 0.5);
}
.toolbox-card4-right .toolbox-card4-label {
color: rgba(0, 255, 136, 0.5);
}
.toolbox-card4-divider {
width: 1px;
background: linear-gradient(to bottom, transparent, rgba(0, 255, 136, 0.3), transparent);
position: absolute;
left: 50%;
top: 8%;
height: 84%;
}
/* ===== Responsive ===== */
@media (max-width: 980px) {
.omni-home__toolbox-shell {
flex-direction: column;
padding: 48px 22px 64px;
}
.omni-home__toolbox-left {
width: 100%;
flex-shrink: unset;
}
.omni-home__toolbox-grid {
width: 100%;
min-height: clamp(480px, 70vw, 700px);
}
.omni-home__toolbox-workflow {
margin-top: 0;
}
}
@media (max-width: 560px) {
.omni-home__toolbox-shell {
padding: 36px 18px 48px;
}
.omni-home__toolbox-title {
font-size: 20px;
}
.omni-home__toolbox-grid {
grid-template-columns: 1fr;
grid-template-rows: auto;
min-height: auto;
}
.omni-home__toolbox-card {
min-height: 200px;
}
}
@media (prefers-reduced-motion: reduce) {
.omni-home__toolbox-item,
.omni-home__toolbox-card {
animation: none;
}
.toolbox-card3-glow-ring,
.toolbox-card3-lipsync span,
.toolbox-card3-gesture::before,
.toolbox-card3-gesture::after,
.toolbox-card3-live,
.toolbox-card3-transform {
animation: none;
}
}