/* Fonts are self-hosted (assets/fonts/, SIL OFL) so no request goes to Google before consent. */
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/assets/fonts/archivo-latin-ext-wdth-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/assets/fonts/archivo-latin-wdth-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/public-sans-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Public Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/public-sans-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Public Sans";font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/fonts/public-sans-latin-ext-wght-italic.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Public Sans";font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/fonts/public-sans-latin-wght-italic.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* Layout: one reading column; a sticky filter bar; each recall is a dated notice row with a source stripe. */
:root{
  --bg:#f2f4f6; --surface:#ffffff; --ink:#15212c; --muted:#5b6875; --line:#dde2e7;
  --accent:#b8480f; --accent-soft:#fbe9dd;
  --sev-high:#b42318; --sev-high-soft:#fde8e6; --sev-mid:#a15c07; --sev-mid-soft:#fdf1dc;
  --chip:#e8ecf0; --chip-on:#15212c; --chip-on-fg:#ffffff;
  --display:"Archivo","Arial Narrow",system-ui,sans-serif;
  --body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0f151b; --surface:#161e26; --ink:#e7ecf1; --muted:#98a5b2; --line:#26313c;
  --accent:#f08a4b; --accent-soft:#3a2417;
  --sev-high:#ff8a80; --sev-high-soft:#3b1a19; --sev-mid:#f2b35a; --sev-mid-soft:#352713;
  --chip:#202a34; --chip-on:#e7ecf1; --chip-on-fg:#0f151b; color-scheme:dark}}
:root[data-theme="light"]{color-scheme:light}
:root[data-theme="dark"]{
  --bg:#0f151b; --surface:#161e26; --ink:#e7ecf1; --muted:#98a5b2; --line:#26313c;
  --accent:#f08a4b; --accent-soft:#3a2417;
  --sev-high:#ff8a80; --sev-high-soft:#3b1a19; --sev-mid:#f2b35a; --sev-mid-soft:#352713;
  --chip:#202a34; --chip-on:#e7ecf1; --chip-on-fg:#0f151b; color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--ink);font:15px/1.55 var(--body);margin:0}
.wrap{max-width:900px;margin:0 auto;padding-inline:16px}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

header.top{padding-block:40px 20px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-stretch:80%;
  letter-spacing:.02em;text-transform:uppercase;font-size:14px}
.brand .mark{width:24px;height:24px;display:block}
.topline{display:flex;align-items:center;justify-content:space-between;gap:12px}
.theme{flex:none;width:40px;height:40px;display:inline-grid;place-items:center;padding:0;cursor:pointer;
  background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:999px}
.theme:hover{color:var(--accent);border-color:var(--accent)}
.theme svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.theme .i-sun{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .theme .i-sun{display:block}:root:not([data-theme="light"]) .theme .i-moon{display:none}}
:root[data-theme="dark"] .theme .i-sun{display:block}:root[data-theme="dark"] .theme .i-moon{display:none}
.brand .mark path{fill:var(--accent)}
h1{font-family:var(--display);font-stretch:72%;font-weight:800;font-size:clamp(34px,6.4vw,56px);line-height:1;
  margin:18px 0 12px;text-wrap:balance;letter-spacing:-.01em}
.lede{color:var(--muted);max-width:60ch;margin:0}
.stamp{margin-top:14px;font:12px/1.4 var(--mono);color:var(--muted);display:flex;gap:14px;flex-wrap:wrap}
.stamp b{color:var(--ink);font-weight:500}
.stamp .rss{color:var(--accent);text-decoration:none;font-weight:500}.stamp .rss:hover{text-decoration:underline}
.prose ul.feeds{list-style:none;padding:0}.feeds li{padding:4px 0;display:flex;flex-wrap:wrap;gap:2px 12px;align-items:baseline}
.feeds code{color:var(--muted);overflow-wrap:anywhere}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2f9e62;margin-right:6px;vertical-align:1px}

.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);border-bottom:1px solid var(--line);
  padding-block:12px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field label{font:600 11px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
select,input[type=search]{font:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line);
  border-radius:8px;padding:9px 12px;min-height:42px}
#country{min-width:220px;max-width:100%}
.grow{flex:1 1 220px}
.grow input{width:100%}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.chip{font:500 13px/1 var(--body);border:0;border-radius:999px;background:var(--chip);color:var(--ink);padding:8px 12px;cursor:pointer;
  display:inline-flex;gap:6px;align-items:center}
.chip .n{font-family:var(--mono);font-size:11px;color:var(--muted)}
.chip[aria-pressed=true]{background:var(--chip-on);color:var(--chip-on-fg)}
.chip[aria-pressed=true] .n{color:inherit;opacity:.7}
.eu-note{margin-top:10px;font-size:13px;color:var(--muted);display:flex;gap:8px;align-items:center}
.eu-note input{accent-color:var(--accent);width:16px;height:16px}

.summary{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding-block:18px 6px}
.summary h2{font-family:var(--display);font-stretch:85%;font-weight:700;font-size:20px;margin:0}
.summary .meta{font:12px var(--mono);color:var(--muted)}

ol.list{list-style:none;margin:0;padding:0 0 40px}
.day{font:500 12px/1 var(--mono);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;padding:18px 0 8px;
  border-bottom:1px solid var(--line)}
.item{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.cc{font:500 12px/1 var(--mono);text-align:center;border:1px solid var(--line);border-radius:6px;padding:7px 0;
  background:var(--surface);height:max-content}
.cc small{display:block;font-size:9.5px;color:var(--muted);margin-top:4px;letter-spacing:.02em}
.cc img.fl{display:block;width:22px;height:16px;margin:0 auto 6px;border-radius:2px;object-fit:cover;box-shadow:0 0 0 1px var(--line)}
.cc img.sm{display:inline-block;width:12px;height:9px;margin:0 3px 0 0;vertical-align:-1px;border-radius:1px}
.body{min-width:0}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.tag{font:600 11px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;padding:5px 7px;border-radius:4px;
  background:var(--chip);color:var(--muted)}
.tag.cat{background:var(--accent-soft);color:var(--accent)}
.tag.high{background:var(--sev-high-soft);color:var(--sev-high)}
.tag.mid{background:var(--sev-mid-soft);color:var(--sev-mid)}
.item h3{font:600 16px/1.35 var(--body);margin:0 0 4px;overflow-wrap:anywhere}
.item h3 a{text-decoration:none}
.item h3 a:hover{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}
.hz{margin:0;color:var(--ink);opacity:.85;font-size:14px;max-width:70ch}
.src{margin-top:8px;font:12px/1.4 var(--mono);color:var(--muted);display:flex;gap:6px 14px;flex-wrap:wrap}
.src a{color:var(--accent);text-decoration:none;font-weight:500}
.src a:hover{text-decoration:underline}
.empty{padding:48px 0;text-align:center;color:var(--muted)}
.more{display:block;margin:0 auto 40px;font:600 14px var(--body);background:var(--surface);color:var(--ink);border:1px solid var(--line);
  border-radius:8px;padding:10px 18px;cursor:pointer}

footer{border-top:1px solid var(--line);padding-block:24px 48px;color:var(--muted);font-size:13px}
footer h4{font:600 11px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin:0 0 10px}
.browse{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px 24px;margin-bottom:26px}
.browse ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 12px}
.browse a{color:var(--ink);text-decoration:none}
.browse a:hover{color:var(--accent);text-decoration:underline}
.srcgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:6px 24px;margin-bottom:18px}
.srcgrid div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dotted var(--line);padding-block:4px}
.srcgrid span:last-child{font-family:var(--mono);font-variant-numeric:tabular-nums}
.consent{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:20;max-width:560px;margin:0 auto;
  background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:14px 16px;
  box-shadow:0 6px 24px rgba(0,0,0,.18);display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:14px}
.consent p{margin:0;flex:1 1 260px}
.consent .btns{display:flex;gap:8px}
.consent button{font:600 14px var(--body);border-radius:8px;padding:8px 14px;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.consent button.yes{background:var(--chip-on);color:var(--chip-on-fg);border-color:var(--chip-on)}
.linkbtn{font:inherit;color:inherit;background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}
@media (max-width:700px){.bar{position:static}}
@media (max-width:520px){.item{grid-template-columns:44px 1fr;gap:10px}#country{min-width:0;width:100%}.field{width:100%}}
@media (prefers-reduced-motion:no-preference){.item{animation:in .25s ease both}@keyframes in{from{opacity:.4}to{opacity:1}}}
/* Recall and brand pages */
.top.slim{padding-block:18px 6px}
.crumbs{font:13px/1.4 var(--body);color:var(--muted);margin:6px 0 14px;display:flex;flex-wrap:wrap;gap:4px 8px}
.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--accent)}
.recall h1{font-size:clamp(26px,4.4vw,40px);margin:8px 0 10px}
.recall .lede{margin-bottom:18px}
.cta{display:inline-block;background:var(--accent);color:var(--surface);text-decoration:none;font-weight:600;padding:11px 16px;border-radius:8px;margin:4px 0 20px}
.cta:hover{filter:brightness(1.08)}
.playbadge{display:inline-block;margin:4px 0 20px;line-height:0;border-radius:8px}
.playbadge img{display:block;width:189px;height:56px}
.playbadge:hover{filter:brightness(1.1)}
.appbox .playbadge{margin:0 0 12px}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:0 0 26px;padding:16px 0;border-block:1px solid var(--line);font-size:15px}
.facts dt{font:12px/1.6 var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.facts dd{margin:0;overflow-wrap:anywhere}
.shot{max-width:280px;max-height:280px;border:1px solid var(--line);border-radius:8px;background:#fff;margin:0 0 20px;display:block}
.recall h2{font:700 20px/1.2 var(--display);font-stretch:85%;margin:30px 0 8px}
.todo{margin:0;padding-left:20px;line-height:1.55}.todo li{margin:4px 0}
.note{font-size:13px;color:var(--muted)}
.appstrip{background:var(--accent-soft);color:var(--ink);border-radius:8px;padding:10px 14px;margin:0 0 18px;font-size:14px}.appstrip a{color:var(--accent);font-weight:600}
.appbox{background:var(--accent-soft);border-radius:10px;padding:14px 16px 2px;margin:20px 0}.appbox p{margin:0 0 10px;max-width:60ch}
.shots{display:flex;gap:12px;overflow-x:auto;padding:4px 0 12px;margin:8px 0 8px;scroll-snap-type:x mandatory}.shots img{flex:0 0 auto;width:220px;height:auto;border-radius:12px;scroll-snap-align:start;border:1px solid var(--line)}

.more-link{display:inline-block;margin-top:12px;color:var(--accent);font-weight:600;text-decoration:none}
.brands{columns:3 220px;padding:0;list-style:none;margin:0 0 30px}.brands li{padding:3px 0;break-inside:avoid}
.brands a{text-decoration:none;color:var(--ink)}.brands a:hover{color:var(--accent)}.brands span{color:var(--muted);font:12px var(--mono);margin-left:6px}
.prose p{max-width:70ch;line-height:1.6}
.weekly .ystats{margin:6px 0 10px}.weekly h2 .cnt{font:500 13px var(--mono);color:var(--muted);margin-left:6px}
.wknav{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:28px 0 8px;font-weight:600}
.wknav a{color:var(--accent);text-decoration:none}.wknav a:hover{text-decoration:underline}
.weeks{list-style:none;padding:0;margin:0 0 10px;columns:2 300px}.weeks li{display:flex;gap:10px;padding:3px 0;break-inside:avoid;font-size:14px}
.weeks li a{min-width:64px;color:var(--ink)}.weeks li span{color:var(--muted)}.weeks li span:last-child{margin-left:auto;font:12px var(--mono)}
.prose ul{max-width:70ch;padding-left:20px;line-height:1.6}.prose code{font:13px var(--mono)}
.cform{display:grid;gap:12px;max-width:520px;margin-top:8px}
.cform label{display:grid;gap:4px;font:600 12px/1.2 var(--body);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cform input,.cform textarea{font:15px/1.4 var(--body);color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 12px;text-transform:none;letter-spacing:0}
.cform .cta{border:0;cursor:pointer;justify-self:start;font-size:15px}
.consent a{color:inherit}
.ystats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px 28px;padding:18px 0 4px;border-bottom:1px solid var(--line)}
.ystats h4{font:600 11px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.ystats .big{font:800 40px/1 var(--display);font-stretch:80%}
.months{display:flex;align-items:flex-end;gap:3px;height:56px}
.months span{flex:1;background:var(--accent);opacity:.75;border-radius:2px 2px 0 0;min-height:2px}
.mlab{display:flex;justify-content:space-between;font:11px var(--mono);color:var(--muted);margin-top:4px}
.ystats ol{margin:0;padding:0;list-style:none;font-size:14px}.ystats li{display:flex;justify-content:space-between;gap:8px;padding:2px 0}
.ystats li span{font:12px var(--mono);color:var(--muted)}.ystats a{color:var(--ink)}
@media (max-width:520px){.facts{grid-template-columns:1fr;gap:2px}.facts dd{margin-bottom:8px}}
