Spaces:
Running
Running
| :root { | |
| --aimo-bg: #eef4fb; | |
| --aimo-card: rgba(255, 255, 255, 0.94); | |
| --aimo-card-strong: #ffffff; | |
| --aimo-line: rgba(191, 219, 254, 0.65); | |
| --aimo-ink: #0f172a; | |
| --aimo-copy: #475569; | |
| --aimo-brand: #1d4ed8; | |
| --aimo-brand-strong: #0f172a; | |
| --aimo-good: #047857; | |
| --aimo-warn: #b45309; | |
| --aimo-bad: #b91c1c; | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| html, | |
| body { | |
| margin: 0; | |
| min-height: 100%; | |
| background: | |
| radial-gradient(circle at top left, rgba(125, 211, 252, 0.18), transparent 24%), | |
| radial-gradient(circle at top right, rgba(59, 130, 246, 0.12), transparent 18%), | |
| linear-gradient(180deg, #f8fbff 0%, var(--aimo-bg) 100%); | |
| color: var(--aimo-ink); | |
| font-family: Arial, sans-serif; | |
| } | |
| body { | |
| padding: 22px 16px 40px; | |
| } | |
| .app-shell { | |
| width: min(1760px, calc(100vw - 32px)); | |
| margin: 0 auto; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 22px; | |
| } | |
| .hero { | |
| display: flex; | |
| flex-direction: row; | |
| align-items: center; | |
| gap: 14px; | |
| justify-content: center; | |
| text-align: center; | |
| } | |
| .hero-logo { | |
| width: 68px; | |
| height: 68px; | |
| object-fit: contain; | |
| } | |
| .hero-title { | |
| font: 800 46px/1.02 "Trebuchet MS", Arial, sans-serif; | |
| letter-spacing: -0.04em; | |
| } | |
| .notice { | |
| position: relative; | |
| overflow: visible; | |
| width: min(50%, 800px); | |
| margin: 0 auto; | |
| border: 1px solid rgba(251, 191, 36, 0.42); | |
| border-radius: 22px; | |
| background: linear-gradient(120deg, rgba(255, 251, 235, 0.98), rgba(254, 243, 199, 0.96)); | |
| box-shadow: 0 20px 60px rgba(234, 179, 8, 0.12); | |
| padding: 17px 22px; | |
| text-align: center; | |
| color: #92400e; | |
| font: 700 15px/1.6 Arial, sans-serif; | |
| will-change: box-shadow; | |
| } | |
| .notice::before { | |
| content: ""; | |
| position: absolute; | |
| inset: 0; | |
| border-radius: inherit; | |
| background: inherit; | |
| border: inherit; | |
| box-shadow: inherit; | |
| z-index: 0; | |
| transform-origin: center center; | |
| animation: noticeFramePulse 4.8s ease-in-out infinite; | |
| pointer-events: none; | |
| } | |
| .notice > * { | |
| position: relative; | |
| z-index: 1; | |
| } | |
| .heart-mark { | |
| color: #dc2626; | |
| } | |
| @keyframes noticeFramePulse { | |
| 0% { | |
| transform: translateY(0) scale(1); | |
| box-shadow: 0 20px 60px rgba(234, 179, 8, 0.12); | |
| } | |
| 50% { | |
| transform: translateY(-4px) scale(1.015); | |
| box-shadow: 0 24px 72px rgba(234, 179, 8, 0.18); | |
| } | |
| 100% { | |
| transform: translateY(0) scale(1); | |
| box-shadow: 0 20px 60px rgba(234, 179, 8, 0.12); | |
| } | |
| } | |
| .main-grid { | |
| display: grid; | |
| grid-template-columns: minmax(460px, 560px) minmax(860px, 1fr); | |
| gap: 22px; | |
| align-items: stretch; | |
| } | |
| .card { | |
| border: 1px solid var(--aimo-line); | |
| border-radius: 28px; | |
| background: var(--aimo-card); | |
| box-shadow: 0 28px 80px rgba(15, 23, 42, 0.09); | |
| overflow: hidden; | |
| backdrop-filter: blur(8px); | |
| } | |
| .left-card { | |
| padding: 22px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 16px; | |
| } | |
| .right-card { | |
| padding: 16px; | |
| min-height: 800px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 12px; | |
| } | |
| .output-label { | |
| padding: 6px 10px 0; | |
| color: var(--aimo-copy); | |
| font: 700 16px/1.2 Arial, sans-serif; | |
| } | |
| .section-title { | |
| margin: 0; | |
| color: var(--aimo-ink); | |
| font: 700 17px/1.3 Arial, sans-serif; | |
| } | |
| .section-title.small { | |
| font-size: 15px; | |
| } | |
| .section-copy { | |
| margin: 0; | |
| color: var(--aimo-copy); | |
| font: 500 14px/1.7 Arial, sans-serif; | |
| } | |
| .input-card { | |
| border: 1px solid rgba(191, 219, 254, 0.62); | |
| border-radius: 24px; | |
| background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.92)); | |
| box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8); | |
| padding: 16px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 14px; | |
| } | |
| .preview-frame { | |
| position: relative; | |
| min-height: 360px; | |
| border-radius: 22px; | |
| overflow: hidden; | |
| border: 1px solid rgba(226, 232, 240, 0.95); | |
| background: linear-gradient(180deg, #f8fafc, #e2e8f0); | |
| } | |
| .preview-frame video { | |
| display: block; | |
| width: 100%; | |
| height: 360px; | |
| object-fit: contain; | |
| object-position: center; | |
| background: #0f172a; | |
| } | |
| .preview-empty { | |
| min-height: 360px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| text-align: center; | |
| padding: 26px; | |
| color: #475569; | |
| font: 600 16px/1.7 Arial, sans-serif; | |
| } | |
| .preview-toolbar { | |
| position: absolute; | |
| top: 12px; | |
| right: 12px; | |
| display: flex; | |
| gap: 8px; | |
| } | |
| .ghost-button, | |
| .pill-button, | |
| .cta-button, | |
| .primary-button { | |
| appearance: none; | |
| border: 0; | |
| border-radius: 999px; | |
| font: 700 15px/1 Arial, sans-serif; | |
| cursor: pointer; | |
| transition: transform 120ms ease, opacity 120ms ease, box-shadow 120ms ease; | |
| } | |
| .ghost-button, | |
| .pill-button { | |
| padding: 11px 16px; | |
| } | |
| .ghost-button { | |
| background: rgba(255, 255, 255, 0.92); | |
| color: #0f172a; | |
| box-shadow: 0 10px 24px rgba(15, 23, 42, 0.12); | |
| } | |
| .ghost-button[disabled], | |
| .pill-button[disabled], | |
| .primary-button[disabled] { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| transform: none; | |
| } | |
| .upload-row { | |
| display: flex; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| justify-content: center; | |
| } | |
| .pill-button { | |
| background: #eef2ff; | |
| color: #1e3a8a; | |
| } | |
| .pill-button.file-label { | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .pill-button.file-label input { | |
| position: absolute; | |
| inset: 0; | |
| opacity: 0; | |
| cursor: pointer; | |
| } | |
| .targets { | |
| display: flex; | |
| gap: 16px; | |
| } | |
| .target-chip { | |
| flex: 1 1 0; | |
| border: 1px solid rgba(203, 213, 225, 0.92); | |
| border-radius: 16px; | |
| background: rgba(255, 255, 255, 0.84); | |
| padding: 14px 16px; | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| font: 600 15px/1.3 Arial, sans-serif; | |
| } | |
| .target-chip.is-required { | |
| opacity: 0.92; | |
| } | |
| .target-chip input { | |
| width: 16px; | |
| height: 16px; | |
| } | |
| .start-row { | |
| display: flex; | |
| gap: 12px; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| .primary-button { | |
| min-height: 56px; | |
| min-width: 196px; | |
| padding: 0 24px; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| text-align: center; | |
| background: linear-gradient(90deg, var(--aimo-brand-strong), var(--aimo-brand)); | |
| color: #f8fafc; | |
| box-shadow: 0 18px 36px rgba(29, 78, 216, 0.2); | |
| } | |
| .status-card { | |
| border-radius: 16px; | |
| border: 1px solid rgba(148, 163, 184, 0.24); | |
| background: rgba(241, 245, 249, 0.96); | |
| color: #1e293b; | |
| padding: 16px 18px; | |
| font: 500 15px/1.65 Arial, sans-serif; | |
| } | |
| .status-card.is-success { | |
| background: rgba(236, 253, 245, 0.98); | |
| color: var(--aimo-good); | |
| border-color: rgba(16, 185, 129, 0.18); | |
| } | |
| .status-card.is-warning { | |
| background: rgba(255, 247, 237, 0.98); | |
| color: var(--aimo-warn); | |
| border-color: rgba(251, 146, 60, 0.18); | |
| } | |
| .status-card.is-error { | |
| background: rgba(254, 242, 242, 0.98); | |
| color: var(--aimo-bad); | |
| border-color: rgba(248, 113, 113, 0.18); | |
| } | |
| .examples-scroller { | |
| display: flex; | |
| gap: 12px; | |
| overflow-x: auto; | |
| overflow-y: hidden; | |
| padding-bottom: 4px; | |
| } | |
| .example-card { | |
| position: relative; | |
| flex: 0 0 104px; | |
| width: 104px; | |
| min-width: 104px; | |
| height: 96px; | |
| border-radius: 18px; | |
| overflow: hidden; | |
| border: 1px solid rgba(191, 219, 254, 0.68); | |
| background: rgba(255, 255, 255, 0.96); | |
| box-shadow: 0 16px 30px rgba(15, 23, 42, 0.06); | |
| cursor: pointer; | |
| } | |
| .example-card img { | |
| display: block; | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| } | |
| .example-card.is-selected { | |
| border-color: rgba(37, 99, 235, 0.85); | |
| box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.18), 0 16px 30px rgba(15, 23, 42, 0.06); | |
| } | |
| .example-card.is-selected::after { | |
| content: "\2713"; | |
| position: absolute; | |
| top: 8px; | |
| left: 8px; | |
| width: 22px; | |
| height: 22px; | |
| border-radius: 999px; | |
| background: rgba(15, 23, 42, 0.92); | |
| color: #f8fafc; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font: 700 14px/1 Arial, sans-serif; | |
| box-shadow: 0 8px 18px rgba(15, 23, 42, 0.18); | |
| } | |
| .viewer-shell { | |
| position: relative; | |
| min-height: 840px; | |
| height: 840px; | |
| flex: 1 1 auto; | |
| border: 1px solid rgba(191, 219, 254, 0.52); | |
| border-radius: 28px; | |
| background: linear-gradient(180deg, #ffffff, #eff6ff); | |
| box-shadow: 0 30px 90px rgba(15, 23, 42, 0.09); | |
| overflow: hidden; | |
| } | |
| .viewer-frame { | |
| width: 100%; | |
| height: 100%; | |
| border: 0; | |
| background: #020617; | |
| display: none; | |
| } | |
| .viewer-frame.is-visible { | |
| display: block; | |
| } | |
| .viewer-overlay { | |
| position: absolute; | |
| inset: 0; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| text-align: center; | |
| padding: 24px; | |
| color: #334155; | |
| font: 600 16px/1.75 Arial, sans-serif; | |
| background: | |
| radial-gradient(circle at top, rgba(125, 211, 252, 0.15), transparent 30%), | |
| linear-gradient(180deg, #f8fafc, #e2e8f0); | |
| } | |
| .cta { | |
| border: 1px solid rgba(191, 219, 254, 0.5); | |
| border-radius: 28px; | |
| background: | |
| radial-gradient(circle at top left, rgba(125, 211, 252, 0.24), transparent 34%), | |
| linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(239, 246, 255, 0.96)); | |
| box-shadow: 0 28px 80px rgba(15, 23, 42, 0.09); | |
| margin-top: 10px; | |
| padding: 26px 28px; | |
| text-align: center; | |
| } | |
| .cta h2 { | |
| margin: 0; | |
| font: 700 24px/1.1 "Trebuchet MS", Arial, sans-serif; | |
| } | |
| .cta p { | |
| margin: 12px auto 18px; | |
| max-width: 760px; | |
| color: var(--aimo-copy); | |
| font: 500 14px/1.7 Arial, sans-serif; | |
| } | |
| .cta-button { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| min-width: 192px; | |
| padding: 13px 22px; | |
| background: #0f172a; | |
| color: #f8fafc; | |
| text-decoration: none; | |
| box-shadow: 0 14px 28px rgba(15, 23, 42, 0.18); | |
| } | |
| .cta-button-icon { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-size: 16px; | |
| line-height: 1; | |
| } | |
| .cta-button-label { | |
| display: inline-flex; | |
| align-items: center; | |
| } | |
| .modal-backdrop { | |
| position: fixed; | |
| inset: 0; | |
| z-index: 12000; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| padding: 24px; | |
| background: rgba(15, 23, 42, 0.48); | |
| backdrop-filter: blur(8px); | |
| } | |
| .modal-card { | |
| width: min(100%, 460px); | |
| border-radius: 24px; | |
| border: 1px solid rgba(148, 163, 184, 0.22); | |
| background: rgba(255, 255, 255, 0.98); | |
| box-shadow: 0 32px 80px rgba(15, 23, 42, 0.28); | |
| padding: 20px; | |
| color: #0f172a; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .modal-card.is-warning { | |
| border-color: rgba(251, 146, 60, 0.3); | |
| } | |
| .modal-card.is-error { | |
| border-color: rgba(248, 113, 113, 0.3); | |
| } | |
| .modal-header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 12px; | |
| } | |
| .modal-close { | |
| width: 38px; | |
| min-width: 38px; | |
| height: 38px; | |
| padding: 0; | |
| border-radius: 999px; | |
| box-shadow: none; | |
| font: 700 24px/1 Arial, sans-serif; | |
| } | |
| .modal-body { | |
| margin: 14px 0 0; | |
| } | |
| .modal-body p { | |
| margin: 0; | |
| } | |
| .modal-actions { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| width: 100%; | |
| gap: 10px; | |
| flex-wrap: wrap; | |
| margin-top: 18px; | |
| } | |
| .modal-cta { | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| text-decoration: none; | |
| } | |
| @media (max-width: 1220px) { | |
| .app-shell { | |
| width: min(1420px, calc(100vw - 20px)); | |
| } | |
| .notice { | |
| width: min(100%, 780px); | |
| } | |
| .main-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .right-card, | |
| .viewer-shell, | |
| .viewer-frame { | |
| min-height: clamp(520px, 72vh, 700px); | |
| height: clamp(520px, 72vh, 700px); | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| body { | |
| padding: 16px 10px 28px; | |
| } | |
| .app-shell { | |
| width: min(100vw - 20px, 100%); | |
| gap: 16px; | |
| } | |
| .hero { | |
| flex-direction: column; | |
| gap: 8px; | |
| } | |
| .hero-title { | |
| font-size: 38px; | |
| } | |
| .notice { | |
| width: min(100%, 560px); | |
| padding: 15px 16px; | |
| } | |
| .left-card, | |
| .right-card { | |
| padding: 14px; | |
| } | |
| .right-card { | |
| min-height: auto; | |
| } | |
| .viewer-shell { | |
| min-height: min(70vh, 580px); | |
| height: min(70vh, 580px); | |
| border-radius: 22px; | |
| } | |
| .viewer-frame { | |
| height: 100%; | |
| } | |
| .preview-frame, | |
| .preview-frame video, | |
| .preview-empty { | |
| min-height: 260px; | |
| height: 260px; | |
| } | |
| .targets { | |
| flex-direction: column; | |
| } | |
| .target-chip { | |
| width: 100%; | |
| } | |
| .start-row { | |
| flex-direction: column; | |
| align-items: stretch; | |
| } | |
| .primary-button { | |
| width: 100%; | |
| } | |
| .cta-button { | |
| width: 100%; | |
| } | |
| } | |