:root { --ink: #090f0e; --jade: #0d1b18; --jade-2: #122722; --paper: #f4ead4; --paper-dim: #c7b999; --gold: #d6a958; --gold-soft: rgba(214, 169, 88, 0.18); --cyan: #34e0bd; --cyan-soft: rgba(52, 224, 189, 0.16); --line: rgba(244, 234, 212, 0.13); --danger: #ff7a5f; } * { box-sizing: border-box; } html { background: var(--ink); color: var(--paper); } body { margin: 0; min-height: 100vh; font-family: "Songti SC", "Noto Serif SC", "STSong", ui-serif, Georgia, serif; background: radial-gradient(circle at 18% 4%, rgba(214, 169, 88, 0.14), transparent 28rem), radial-gradient(circle at 82% 12%, rgba(52, 224, 189, 0.12), transparent 24rem), linear-gradient(135deg, rgba(255, 255, 255, 0.035) 0 1px, transparent 1px 32px), var(--ink); } button, input { font: inherit; } button { cursor: pointer; } .shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 36px 0 80px; } .hero { position: relative; display: grid; grid-template-columns: 1fr minmax(260px, 420px); gap: 38px; min-height: 430px; padding: 34px; border: 1px solid var(--line); border-radius: 28px; overflow: hidden; background: linear-gradient(130deg, rgba(13, 27, 24, 0.96), rgba(9, 15, 14, 0.78)), radial-gradient(circle at 70% 50%, rgba(52, 224, 189, 0.14), transparent 20rem); box-shadow: 0 24px 80px rgba(0, 0, 0, 0.3); } .hero::after { content: ""; position: absolute; inset: 22px; border: 1px solid rgba(214, 169, 88, 0.16); border-radius: 22px; pointer-events: none; } .brand { display: flex; align-items: center; gap: 16px; position: relative; z-index: 1; } .seal { display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); font-size: 30px; box-shadow: 0 0 36px var(--gold-soft); } .kicker, .eyebrow, .section-label { margin: 0; color: var(--gold); font-family: ui-sans-serif, system-ui, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; } h1, h2, h3, h4, p { margin: 0; } h1 { font-size: clamp(34px, 5vw, 64px); letter-spacing: 0.08em; } .hero-copy { align-self: end; position: relative; z-index: 1; max-width: 680px; } .hero-copy h2 { margin-top: 18px; font-size: clamp(36px, 6vw, 82px); line-height: 1.05; letter-spacing: 0.02em; } .hero-copy p:last-child { max-width: 620px; margin-top: 22px; color: var(--paper-dim); font-size: 18px; line-height: 1.8; } .hero-orbit { position: relative; z-index: 1; align-self: center; aspect-ratio: 1; border: 1px solid rgba(52, 224, 189, 0.32); border-radius: 50%; background: radial-gradient(circle, rgba(52, 224, 189, 0.22), transparent 46%), repeating-radial-gradient(circle, rgba(214, 169, 88, 0.16) 0 1px, transparent 1px 26px); } .palm-mark { position: absolute; inset: 15%; display: grid; place-items: center; border: 1px solid rgba(214, 169, 88, 0.42); border-radius: 50%; color: var(--cyan); font-size: clamp(80px, 12vw, 150px); text-shadow: 0 0 32px rgba(52, 224, 189, 0.42); } .workspace { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.7fr); gap: 22px; margin-top: 22px; } .upload-card, .archive-card, .report-panel { border: 1px solid var(--line); border-radius: 24px; background: rgba(13, 27, 24, 0.82); box-shadow: 0 18px 54px rgba(0, 0, 0, 0.22); } .upload-card, .archive-card { padding: 26px; } .upload-card h3, .report-panel h3 { margin-top: 10px; font-size: 34px; } .upload-card > p { margin-top: 12px; color: var(--paper-dim); line-height: 1.75; } .drop-zone { position: relative; display: grid; min-height: 310px; margin-top: 22px; place-items: center; border: 1px dashed rgba(214, 169, 88, 0.5); border-radius: 22px; background: linear-gradient(135deg, rgba(214, 169, 88, 0.08), transparent), rgba(9, 15, 14, 0.48); overflow: hidden; } .drop-zone input { position: absolute; inset: 0; opacity: 0; cursor: pointer; } .drop-zone span { color: var(--gold); font-size: 20px; } .drop-zone img { width: 100%; height: 100%; max-height: 420px; object-fit: cover; } .segmented { display: flex; gap: 10px; margin-top: 18px; } .segmented button, .primary-action, .delete-action { min-height: 46px; border: 1px solid var(--line); border-radius: 999px; color: var(--paper); background: rgba(255, 255, 255, 0.04); } .segmented button { flex: 1; } .segmented .active, .primary-action { border-color: rgba(214, 169, 88, 0.8); color: #1a1208; background: linear-gradient(135deg, #f1d28c, var(--gold)); } .primary-action { width: 100%; margin-top: 18px; font-weight: 700; } .primary-action:disabled { opacity: 0.7; cursor: wait; } .error { margin-top: 14px; color: var(--danger); } .stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 18px; } .stat { padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255, 255, 255, 0.035); } .stat strong { display: block; color: var(--cyan); font-size: 34px; } .stat span, .empty { color: var(--paper-dim); } .report-list { display: grid; gap: 12px; margin-top: 18px; } .archive-item { display: flex; justify-content: space-between; gap: 16px; width: 100%; padding: 16px; border: 1px solid var(--line); border-radius: 18px; color: var(--paper); text-align: left; background: rgba(9, 15, 14, 0.44); } .archive-item strong, .archive-item small { display: block; } .archive-item small { margin-top: 6px; color: var(--paper-dim); } .archive-item em { flex: 0 0 auto; color: var(--cyan); font-style: normal; white-space: nowrap; } .report-panel { margin-top: 22px; padding: 28px; } .report-hero { display: grid; grid-template-columns: 1fr 180px; gap: 24px; padding: 26px; border: 1px solid rgba(214, 169, 88, 0.22); border-radius: 22px; background: linear-gradient(135deg, rgba(214, 169, 88, 0.1), rgba(52, 224, 189, 0.06)); } .report-hero p:not(.section-label) { margin-top: 16px; color: var(--paper-dim); font-size: 18px; line-height: 1.85; } .score { display: grid; place-content: center; border: 1px solid rgba(52, 224, 189, 0.3); border-radius: 50%; aspect-ratio: 1; color: var(--cyan); text-align: center; box-shadow: inset 0 0 40px rgba(52, 224, 189, 0.09); } .score strong { font-size: 64px; line-height: 1; } .score span { color: var(--paper-dim); } .keywords, .observations { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; } .keywords span, .observations span { padding: 8px 13px; border: 1px solid rgba(52, 224, 189, 0.24); border-radius: 999px; color: var(--cyan); background: var(--cyan-soft); } .dimension-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 22px; } .dimension-card, .summary-list { border: 1px solid var(--line); border-radius: 20px; background: rgba(9, 15, 14, 0.38); } .dimension-card { padding: 20px; } .dimension-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; } .dimension-head span { color: rgba(244, 234, 212, 0.4); } .dimension-head strong { font-size: 22px; } .dimension-head em { color: var(--cyan); font-style: normal; } .dimension-card p { margin-top: 14px; color: var(--paper-dim); line-height: 1.75; } .advice { margin-top: 16px; padding: 14px; border-radius: 16px; color: #f0d9a6; background: var(--gold-soft); } .summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 18px; } .summary-list { padding: 18px; } .summary-list h4 { color: var(--gold); font-size: 18px; } .summary-list p { margin-top: 12px; color: var(--paper-dim); line-height: 1.65; } .disclaimer { margin-top: 18px; color: rgba(244, 234, 212, 0.56); line-height: 1.7; } .delete-action { margin-top: 14px; padding: 0 18px; color: var(--danger); } @media (max-width: 860px) { .shell { width: min(100% - 24px, 1180px); padding-top: 16px; } .hero, .workspace, .report-hero, .dimension-grid, .summary-grid, .summary-grid { grid-template-columns: 1fr; } .hero { min-height: auto; padding: 24px; } .hero-orbit { max-width: 300px; margin: 0 auto; } .report-hero { padding: 20px; } .score { width: 160px; } } @media (max-width: 640px) { body { background: radial-gradient(circle at 20% 0%, rgba(214, 169, 88, 0.14), transparent 18rem), radial-gradient(circle at 88% 6%, rgba(52, 224, 189, 0.1), transparent 16rem), var(--ink); } .shell { width: 100%; padding: 0 12px 48px; } .hero { border-left: 0; border-right: 0; border-radius: 0 0 24px 24px; gap: 22px; padding: 20px 16px 22px; } .hero::after { inset: 12px; border-radius: 18px; } .brand { gap: 12px; } .seal { width: 48px; height: 48px; font-size: 24px; } h1 { font-size: 34px; } .hero-copy h2 { margin-top: 12px; font-size: clamp(34px, 11vw, 48px); line-height: 1.12; } .hero-copy p:last-child { margin-top: 14px; font-size: 15px; line-height: 1.7; } .hero-orbit { max-width: 220px; } .palm-mark { font-size: 82px; } .workspace { gap: 14px; margin-top: 14px; padding: 0 12px; } .upload-card, .archive-card, .report-panel { border-radius: 20px; padding: 18px; } .upload-card h3, .report-panel h3 { font-size: 27px; } .upload-card > p { font-size: 14px; } .drop-zone { min-height: 220px; margin-top: 16px; border-radius: 18px; } .drop-zone img { max-height: 280px; } .segmented { gap: 8px; } .segmented button, .primary-action, .delete-action { min-height: 44px; font-size: 14px; } .stats { gap: 10px; } .stat { padding: 14px; } .stat strong { font-size: 28px; } .archive-item { align-items: flex-start; padding: 14px; } .archive-item strong { font-size: 15px; } .archive-item small, .archive-item em { font-size: 12px; } .report-panel { margin: 14px 12px 0; } .report-hero { gap: 18px; } .report-hero p:not(.section-label) { font-size: 15px; line-height: 1.75; } .score { width: 132px; justify-self: start; } .score strong { font-size: 48px; } .keywords span, .observations span { padding: 7px 11px; font-size: 13px; } .dimension-grid { gap: 12px; } .dimension-card, .summary-list { padding: 16px; border-radius: 18px; } .dimension-head { grid-template-columns: auto 1fr; } .dimension-head em { grid-column: 2; justify-self: start; font-size: 13px; } .dimension-head strong { font-size: 20px; } .dimension-card p, .summary-list p, .advice, .disclaimer { font-size: 14px; line-height: 1.72; } }