:root{--paper:#f4ecdc;--card:#fffaf0;--ink:#1d1a16;--muted:#6b6254;--red:#c8321e;--redbg:#fbe3dc;--green:#2f6b3f;--greenbg:#e1efdf;--amber:#9a6200;--ambbg:#fbefcf;--line:#1d1a16;--r:14px}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background-image:radial-gradient(#0000000a 1px,transparent 1px);background-size:14px 14px;overflow-x:hidden}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
[hidden]{display:none!important}
main,.top,footer{max-width:760px;margin:0 auto;padding-inline:18px}
.top{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-block:14px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:9px;font:700 18px/1 "Iowan Old Style",Palatino,"Palatino Linotype",Georgia,serif;color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.mark{width:22px;height:22px;border-radius:50%;background:var(--red);box-shadow:inset 0 0 0 5px var(--paper),0 0 0 2px var(--red)}
.stamp{font:12px/1.3 ui-monospace,Menlo,monospace;color:var(--muted);border:1.5px dashed var(--muted);border-radius:6px;padding:4px 8px;transform:rotate(-1.5deg)}
.hero{padding:22px 0 20px}
.kicker{font:600 12px ui-monospace,Menlo,monospace;text-transform:uppercase;letter-spacing:.14em;color:var(--red);margin:0 0 10px}
h1{font:800 clamp(38px,11vw,68px)/.98 "Iowan Old Style",Palatino,Georgia,serif;letter-spacing:-.035em;margin:0 0 14px}
h1 em{font-style:italic;color:var(--red);box-shadow:inset 0 -.14em 0 var(--redbg)}
.lede{font-size:17px;max-width:52ch;margin:0;color:#3d372e}
h2{font:700 22px/1.2 "Iowan Old Style",Palatino,Georgia,serif;margin:0}
.card{background:var(--card);border:2px solid var(--line);border-radius:var(--r);padding:18px;margin:0 0 18px;box-shadow:5px 5px 0 var(--line)}
button,input{font:inherit}
button{cursor:pointer}
.primary,.dark{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--red);color:#fff;border:2px solid var(--line);border-radius:10px;padding:12px 18px;font-weight:700;text-decoration:none;box-shadow:3px 3px 0 var(--line);min-height:48px;transition:transform .08s,box-shadow .08s}
.primary:active,.dark:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--line)}
.primary.big{width:100%;font-size:18px;min-height:60px}
.dark{background:var(--ink)}
.ghost{background:transparent;border:2px solid var(--line);border-radius:10px;padding:8px 14px;font-weight:600}
.link{background:none;border:0;color:var(--muted);text-decoration:underline;padding:12px 6px}
:focus-visible{outline:3px solid #1b5fd1;outline-offset:2px}
.hint,.muted{color:var(--muted);font-size:14px;margin:8px 0 0}
.row{display:flex;gap:8px;margin-top:14px}
input{flex:1;min-width:0;border:2px solid var(--line);border-radius:10px;padding:11px 12px;background:#fff;min-height:48px}
.viewfinder{position:relative;border-radius:10px;overflow:hidden;background:#000;margin-bottom:12px;aspect-ratio:4/3}
video{width:100%;height:100%;object-fit:cover}
.reticle{position:absolute;inset:25% 10%;border:3px solid #fff;border-radius:10px;box-shadow:0 0 0 999px #0006}
.reticle::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--red);animation:sweep 1.6s ease-in-out infinite alternate}
@keyframes sweep{from{top:8%}to{top:92%}}
.stop{position:absolute;right:8px;bottom:8px;background:#fffa}
#result,#wresult{margin-top:14px}
.verdict{border:2px solid var(--line);border-radius:12px;padding:14px;animation:pop .25s ease-out}
@keyframes pop{from{transform:scale(.97);opacity:0}}
.verdict.bad{background:var(--redbg);border-color:var(--red)}
.verdict.maybe{background:var(--ambbg);border-color:var(--amber)}
.verdict.ok{background:var(--greenbg);border-color:var(--green)}
.verdict h3{margin:0 0 4px;font:800 24px/1.1 "Iowan Old Style",Palatino,Georgia,serif}
.bad h3{color:var(--red)}.maybe h3{color:var(--amber)}.ok h3{color:var(--green)}
.pname{font-weight:600;margin:0 0 8px;word-break:break-word}
.verdict p{margin:6px 0}
.hit{background:#fffc;border:1.5px solid #0003;border-radius:10px;padding:10px;margin-top:8px}
.hit b{display:block}
.hit a{font-weight:600}
.paid{background:linear-gradient(#fffaf0,#fff3d6)}
.paid-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.tag{font:600 12px ui-monospace,Menlo,monospace;background:var(--ink);color:var(--paper);border-radius:99px;padding:4px 10px}
#locked{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:12px}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:12px 0 0}
.chips li{display:flex;align-items:center;gap:6px;background:#fff;border:1.5px solid var(--line);border-radius:99px;padding:3px 4px 3px 12px;font-size:14px}
.chips button{border:0;background:#0001;border-radius:50%;width:26px;height:26px;line-height:1}
.feed-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:28px 0 10px;flex-wrap:wrap}
.seg{display:flex;border:2px solid var(--line);border-radius:10px;overflow:hidden}
.seg button{border:0;background:transparent;padding:8px 14px;font-weight:600;min-height:40px}
.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.filter{width:100%;flex:none;margin-bottom:12px}
.list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:10px}
.item{background:var(--card);border:2px solid var(--line);border-radius:12px;padding:12px 14px;border-left-width:8px}
.item.Allergy,.item.Serious{border-left-color:var(--red)}.item.Safety,.item.Moderate{border-left-color:var(--amber)}.item.Low{border-left-color:var(--muted)}
.item h3{margin:0 0 4px;font:700 16px/1.3 ui-sans-serif,system-ui,sans-serif;word-break:break-word}
.meta{font:12px/1.4 ui-monospace,Menlo,monospace;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;margin-bottom:4px}
.item p{margin:4px 0;font-size:14px;word-break:break-word}
.item a{font-size:14px;font-weight:600}
.badge{padding:1px 7px;border-radius:99px;background:var(--redbg);color:var(--red);font-weight:700}
.empty{color:var(--muted);padding:20px;text-align:center}
footer{padding-block:24px 40px;color:var(--muted);font-size:13px}
@media(min-width:700px){.card{padding:24px}.primary.big{width:auto;padding-inline:28px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important}}
a{color:var(--red)}
