:root { --bg: #f7f3ec; --ink: #2f2a24; --panel: #fffaf2; --accent: #7a5b3d; --ok: #1f7a43; --bad: #a1352f; } * { box-sizing: border-box; } body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--ink); background: radial-gradient(circle at top, #fffdf8, var(--bg)); } .app { max-width: 760px; margin: 0 auto; padding: 16px; } h1 { margin: 0 0 6px; font-size: 1.35rem; } h2 { margin: 0 0 10px; font-size: 1rem; } p { margin: 0 0 14px; } .camera-wrap { position: relative; border-radius: 14px; overflow: hidden; background: #ddd; aspect-ratio: 3 / 4; } video { width: 100%; height: 100%; object-fit: cover; display: block; } .reticle { position: absolute; left: 50%; top: 50%; width: 70px; height: 70px; transform: translate(-50%, -50%); border: 3px solid #fff; border-radius: 10px; box-shadow: 0 0 0 200vmax rgba(0, 0, 0, 0.1); } .controls { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; } button { border: 0; border-radius: 10px; padding: 10px 14px; background: var(--accent); color: #fff; font-weight: 600; } button:disabled { opacity: 0.55; } .panel { margin-top: 12px; background: var(--panel); border: 1px solid #eadfcd; border-radius: 12px; padding: 12px; } .sample-row { display: flex; align-items: center; gap: 10px; margin-top: 8px; } .swatch { width: 34px; height: 34px; border-radius: 8px; border: 1px solid #bbb; } .palette-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; } .chip { border-radius: 8px; padding: 6px; text-align: center; font-size: 12px; border: 1px solid #d9cfbf; background: #fff; } .chip-color { height: 26px; border-radius: 6px; border: 1px solid rgba(0, 0, 0, 0.15); margin-bottom: 4px; } .ok { color: var(--ok); font-weight: 700; } .bad { color: var(--bad); font-weight: 700; }