:root[data-theme=night]{--bg:#111433;--bg-raised:#181c40;--ink:#b8ad8b;--ink-strong:#f7f2b2;--ink-muted:#87857a;--rule:#4a4d57;--accent:#660024;--accent-ink:#f7f2b2}:root[data-theme=day]{--bg:#f7f2b2;--bg-raised:#fbf8d6;--ink:#487354;--ink-strong:#4a1a2c;--ink-muted:#87857a;--rule:#b8ad8b;--accent:#8e3557;--accent-ink:#f7f2b2}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Reddit Sans,system-ui,sans-serif;font-size:17px;line-height:1.45}h1,h2,h3{color:var(--ink-strong);margin:0 0 .4em;font-family:Roboto Slab,Georgia,serif;font-weight:500}h1{font-size:1.9rem;line-height:1.15}h2{font-size:1.3rem}p{margin:0 0 1em}a{color:var(--ink-strong)}small,.muted{color:var(--ink-muted)}code{font-family:ui-monospace,Menlo,monospace;font-size:.9em}.wordmark{letter-spacing:-.02em;color:var(--ink);font-family:Reddit Sans,sans-serif;font-size:1.25rem;font-weight:700;text-decoration:none}.page{max-width:560px;padding:20px 20px calc(24px + env(safe-area-inset-bottom));margin:0 auto}.page.wide{max-width:1100px}header.top{justify-content:space-between;align-items:center;padding:6px 0 18px;display:flex}footer.foot{color:var(--ink-muted);margin-top:32px;font-size:.85rem}button,select,input{font:inherit;color:var(--ink-strong);background:var(--bg-raised);border:1px solid var(--rule);border-radius:12px;min-height:48px;padding:10px 14px}button{cursor:pointer}button.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:600}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--ink-strong);outline-offset:2px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.card{background:var(--bg-raised);border:1px solid var(--rule);border-radius:16px;padding:16px}.art{aspect-ratio:1;background:#000;border-radius:16px;width:100%;display:block}.art.wide{aspect-ratio:16/9}@media (width<=767px){.art.wide{aspect-ratio:4/5}}.lab-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.lab-grid figure{margin:0}.lab-grid canvas{aspect-ratio:1;border-radius:10px;width:100%;display:block}.lab-grid figcaption{color:var(--ink-muted);margin-top:4px;font-size:.78rem}label.field{color:var(--ink-muted);gap:4px;font-size:.85rem;display:grid}.stack{gap:10px;display:grid}a.button{border:1px solid var(--rule);background:var(--bg-raised);min-height:52px;color:var(--ink-strong);border-radius:12px;justify-content:center;align-items:center;padding:10px 16px;font-weight:500;text-decoration:none;display:flex}a.button.primary,button.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:600}button.big,a.button.big{width:100%;min-height:56px;font-size:1.05rem}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 6px;font-size:.8rem}.progress{color:var(--ink-muted);font-size:.8rem}.chips{grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 20px;display:grid}.chip{text-align:left;border-radius:14px;align-items:center;gap:10px;min-height:56px;padding:10px 14px;display:flex}.chip[aria-pressed=true]{border-color:var(--ink-strong);box-shadow:inset 0 0 0 1px var(--ink-strong)}.chip .dot{border-radius:50%;flex:none;width:14px;height:14px}.chip .tick{opacity:0;margin-left:auto}.chip[aria-pressed=true] .tick{opacity:1}.consent{margin:0 0 1em;padding-left:1.2em}.consent li{margin-bottom:.35em}.nav{align-items:center;gap:10px;margin-top:8px;display:flex}.nav .spacer{flex:1}.photo-preview{object-fit:cover;border-radius:14px;width:100%;max-height:260px;display:block}.swatches{gap:6px;margin-top:8px;display:flex}.swatches span{border:1px solid var(--rule);border-radius:50%;width:28px;height:28px}.caption{white-space:pre-wrap;font-size:.9rem}.toast{color:var(--ink-strong);min-height:1.4em;font-size:.9rem}.fade-in{animation:.4s ease-out fade}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.fade-in{animation:none}}button:disabled,a.button[aria-disabled=true]{opacity:.45;cursor:not-allowed}
