.upload-row { flex-wrap: wrap; }
.camera-card { height:106px; width:145px; border:1px solid var(--line); display:flex; flex-direction:column; align-items:center; justify-content:center; cursor:pointer; background:#fbf8f2; color:var(--ink); font-family:'DM Sans'; }
.camera-card:hover { border-color:var(--purple); color:var(--purple); }
.camera-card span { font-size:24px; color:var(--purple); line-height:20px; }
.camera-card strong { font-size:12px; margin-top:7px; }
.camera-card small { font-size:10px; color:#817b77; margin-top:2px; }
.camera-modal { position:fixed; inset:0; z-index:20; background:#251f1bba; display:none; align-items:center; justify-content:center; padding:20px; }
.camera-modal.open { display:flex; }
.camera-panel { width:min(630px,100%); background:var(--paper); padding:25px; box-shadow:12px 12px 0 var(--purple); }
.camera-top { display:flex; justify-content:space-between; align-items:start; }
.camera-top .eyebrow { margin-bottom:5px; }.camera-top h3 { font:700 35px/.95 Fraunces; margin:0; letter-spacing:-1.5px; }
.close-camera { border:0; background:transparent; font:35px/1 'DM Sans'; cursor:pointer; }
.camera-strip { width:min(420px,100%); margin:22px auto; min-height:0; padding:22px; }.camera-strip .preview-photo { height:auto; aspect-ratio:1.7 / 1; }.camera-live-frame { position:relative; background:#211c1a; }.camera-live-frame video { width:100%; height:100%; object-fit:cover; transform:scaleX(-1); }.camera-next-frame { opacity:.5; }.camera-captured-frame img { width:100%; height:100%; object-fit:cover; }.camera-empty { position:absolute; inset:0; display:grid; place-items:center; color:#fff; font:12px 'DM Mono'; text-align:center; padding:20px; }.camera-empty.hidden { display:none; }.camera-countdown { position:absolute; inset:0; display:none; place-items:center; color:white; background:#2e273155; font:700 120px/.8 Fraunces; text-shadow:4px 4px 0 #6847c7; }.camera-countdown.visible { display:grid; }
.camera-actions { display:flex; justify-content:space-between; align-items:center; gap:15px; }.camera-actions p { font-size:12px; color:#716b67; }
.camera-capture { margin:16px 0; width:auto; white-space:nowrap; }.status.busy { color:#9c6d18; }.status.busy i { background:#e4a93d; }.status.error { color:#b34a43; }.status.error i { background:#d45b52; }
@media(max-width:520px) { .camera-actions { align-items:flex-start; flex-direction:column; }.camera-capture { width:100%; } }
