Spaces:
Running
Running
| :root { | |
| --bg-1: #f5f1e7; | |
| --bg-2: #eedad5; | |
| --bg-3: #e7efe8; | |
| --ink: #2b1f1f; | |
| --ink-soft: #4b3d3d; | |
| --accent: #bf3a2b; | |
| --accent-dark: #8f2b22; | |
| --sand: #f9f4ec; | |
| --shadow: rgba(34, 26, 26, 0.12); | |
| --border: rgba(45, 33, 33, 0.18); | |
| } | |
| * { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| margin: 0; | |
| min-height: 100vh; | |
| color: var(--ink); | |
| background: radial-gradient(circle at 10% 20%, var(--bg-3), transparent 55%), | |
| radial-gradient(circle at 80% 10%, var(--bg-2), transparent 50%), | |
| linear-gradient(140deg, var(--bg-1), #fff8f2 60%, #f0e2d8 100%); | |
| font-family: "Iowan Old Style", "Palatino", "Book Antiqua", "Times New Roman", serif; | |
| } | |
| .background-orbit { | |
| position: fixed; | |
| inset: -30% 10% auto auto; | |
| width: 60vw; | |
| height: 60vw; | |
| background: conic-gradient(from 120deg, rgba(191, 58, 43, 0.2), transparent, rgba(91, 44, 120, 0.18)); | |
| border-radius: 50%; | |
| filter: blur(10px); | |
| opacity: 0.6; | |
| z-index: 0; | |
| animation: slow-spin 40s linear infinite; | |
| } | |
| .background-glow { | |
| position: fixed; | |
| inset: auto auto -15% -10%; | |
| width: 55vw; | |
| height: 55vw; | |
| background: radial-gradient(circle, rgba(191, 58, 43, 0.18), transparent 70%); | |
| border-radius: 50%; | |
| filter: blur(20px); | |
| z-index: 0; | |
| } | |
| @keyframes slow-spin { | |
| from { transform: rotate(0deg); } | |
| to { transform: rotate(360deg); } | |
| } | |
| .hero { | |
| position: relative; | |
| z-index: 1; | |
| display: grid; | |
| grid-template-columns: minmax(280px, 1.2fr) minmax(280px, 0.9fr); | |
| gap: 32px; | |
| padding: 72px 8vw 48px; | |
| align-items: center; | |
| } | |
| .hero-copy h1 { | |
| font-family: "Futura", "Gill Sans", "Optima", "Trebuchet MS", sans-serif; | |
| font-size: clamp(2.2rem, 4vw, 3.4rem); | |
| margin: 0 0 12px; | |
| letter-spacing: 0.02em; | |
| } | |
| .hero-kicker { | |
| text-transform: uppercase; | |
| letter-spacing: 0.18em; | |
| font-size: 0.75rem; | |
| font-weight: 600; | |
| color: var(--accent-dark); | |
| margin: 0 0 12px; | |
| } | |
| .hero-sub { | |
| font-size: 1.05rem; | |
| line-height: 1.7; | |
| color: var(--ink-soft); | |
| max-width: 36ch; | |
| } | |
| .hero-card { | |
| background: rgba(255, 255, 255, 0.75); | |
| border: 1px solid var(--border); | |
| border-radius: 24px; | |
| padding: 28px; | |
| box-shadow: 0 24px 60px var(--shadow); | |
| backdrop-filter: blur(8px); | |
| animation: rise-in 0.8s ease; | |
| } | |
| @keyframes rise-in { | |
| from { transform: translateY(16px); opacity: 0; } | |
| to { transform: translateY(0); opacity: 1; } | |
| } | |
| .file-drop { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 8px; | |
| padding: 24px; | |
| border: 1.5px dashed var(--accent); | |
| border-radius: 18px; | |
| background: var(--sand); | |
| cursor: pointer; | |
| transition: transform 0.2s ease, box-shadow 0.2s ease; | |
| } | |
| .file-drop:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 10px 20px rgba(191, 58, 43, 0.15); | |
| } | |
| .file-drop input { | |
| display: none; | |
| } | |
| .file-title { | |
| font-size: 1.1rem; | |
| font-weight: 600; | |
| } | |
| .file-hint { | |
| font-size: 0.9rem; | |
| color: var(--ink-soft); | |
| } | |
| .controls { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); | |
| gap: 16px; | |
| margin: 20px 0; | |
| } | |
| .controls label { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| font-size: 0.9rem; | |
| color: var(--ink-soft); | |
| } | |
| select { | |
| border: 1px solid var(--border); | |
| border-radius: 12px; | |
| padding: 10px 12px; | |
| font-size: 0.95rem; | |
| background: white; | |
| color: var(--ink); | |
| } | |
| .primary { | |
| width: 100%; | |
| border: none; | |
| border-radius: 14px; | |
| padding: 12px 16px; | |
| font-size: 1rem; | |
| font-weight: 600; | |
| color: white; | |
| background: linear-gradient(120deg, var(--accent), #e25f4f); | |
| cursor: pointer; | |
| transition: transform 0.2s ease, box-shadow 0.2s ease; | |
| } | |
| .primary:hover { | |
| transform: translateY(-1px); | |
| box-shadow: 0 12px 24px rgba(191, 58, 43, 0.25); | |
| } | |
| .status { | |
| margin-top: 12px; | |
| font-size: 0.9rem; | |
| color: var(--ink-soft); | |
| } | |
| .content { | |
| position: relative; | |
| z-index: 1; | |
| padding: 0 8vw 80px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 28px; | |
| } | |
| .preview, | |
| .result { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); | |
| gap: 24px; | |
| } | |
| .panel { | |
| background: rgba(255, 255, 255, 0.78); | |
| border-radius: 20px; | |
| border: 1px solid var(--border); | |
| padding: 20px; | |
| box-shadow: 0 18px 40px rgba(43, 31, 31, 0.08); | |
| backdrop-filter: blur(6px); | |
| } | |
| .panel h2 { | |
| margin: 0 0 12px; | |
| font-family: "Futura", "Gill Sans", "Optima", "Trebuchet MS", sans-serif; | |
| } | |
| .panel-head { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .ghost { | |
| text-decoration: none; | |
| font-size: 0.85rem; | |
| color: var(--accent-dark); | |
| border: 1px solid var(--border); | |
| padding: 6px 10px; | |
| border-radius: 999px; | |
| background: white; | |
| } | |
| .image-frame { | |
| position: relative; | |
| border-radius: 16px; | |
| overflow: hidden; | |
| background: #f6efea; | |
| min-height: 260px; | |
| display: grid; | |
| place-items: center; | |
| } | |
| .image-frame img { | |
| width: 100%; | |
| height: auto; | |
| display: none; | |
| } | |
| .image-frame.show img { | |
| display: block; | |
| } | |
| .placeholder { | |
| color: var(--ink-soft); | |
| font-size: 0.95rem; | |
| } | |
| pre { | |
| background: #1f1717; | |
| color: #f7ece8; | |
| padding: 16px; | |
| border-radius: 16px; | |
| min-height: 240px; | |
| overflow: auto; | |
| font-size: 0.85rem; | |
| line-height: 1.6; | |
| } | |
| .tips ul { | |
| margin: 0; | |
| padding-left: 0; | |
| list-style: none; | |
| color: var(--ink-soft); | |
| line-height: 1.7; | |
| } | |
| .tips li + li { | |
| margin-top: 4px; | |
| } | |
| @media (max-width: 960px) { | |
| .hero { | |
| grid-template-columns: 1fr; | |
| padding: 56px 6vw 36px; | |
| } | |
| .hero-copy h1 { | |
| font-size: 2.4rem; | |
| } | |
| } | |