:root{--bg:#fbf8f4;--card:#fff;--ink:#1f2328;--muted:#5d6570;--brand:#c2410c;--brand-ink:#fff;--line:#e7e1d8;--sale:#b91c1c;--radius:14px}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--brand)}
.site-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;padding:1rem 1.5rem;border-bottom:1px solid var(--line);background:var(--card)}
.brand{font-weight:700;font-size:1.2rem;text-decoration:none;color:var(--ink)}
.site-header nav a{margin-left:1rem;text-decoration:none;color:var(--muted)}
main{max-width:960px;margin:0 auto;padding:1.5rem}
.hero{text-align:center;margin:1.5rem 0}
.hero h1{font-size:clamp(1.8rem,4vw,2.6rem);margin:0 0 .5rem}
.hero p{color:var(--muted);margin:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}
fieldset{border:0;padding:0;margin:0 0 1.25rem}
legend{font-weight:600;margin-bottom:.5rem}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.25rem}
label{display:block;font-weight:600;font-size:.95rem}
select,input[type=text]{display:block;width:100%;margin-top:.35rem;padding:.6rem .7rem;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.full{margin-top:1rem}
.pills{display:flex;flex-wrap:wrap;gap:.5rem}
.pills label{font-weight:500;border:1px solid var(--line);border-radius:999px;padding:.35rem .8rem;cursor:pointer;user-select:none}
.pills input{accent-color:var(--brand);margin-right:.3rem}
.pills label:has(input:checked){border-color:var(--brand);background:#fff4ed}
.santa{font-weight:500;margin-bottom:1.25rem}
button.primary{background:var(--brand);color:var(--brand-ink);border:0;border-radius:10px;padding:.8rem 1.4rem;font:inherit;font-weight:600;cursor:pointer}
button.primary:hover{filter:brightness(1.08)}
#results{margin-top:2rem}
.notice{background:#fff4ed;border:1px solid #fed7aa;border-radius:10px;padding:.7rem 1rem;font-size:.9rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}
.item{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:var(--ink)}
.item:hover{border-color:var(--brand)}
.thumb{aspect-ratio:1;display:grid;place-items:center;font-size:4rem;background:#f3eee7;position:relative}
.thumb img{width:100%;height:100%;object-fit:contain;background:#fff}
.badge{position:absolute;top:.5rem;left:.5rem;background:var(--sale);color:#fff;font-size:.75rem;font-weight:700;padding:.15rem .5rem;border-radius:6px}
.info{padding:.8rem;display:flex;flex-direction:column;gap:.25rem;flex:1}
.name{font-weight:600;line-height:1.3}
.retailer{color:var(--muted);font-size:.85rem}
.price{margin-top:auto;font-weight:700}
.price s{color:var(--muted);font-weight:400;margin-left:.4rem}
.more{text-align:center;margin:1.5rem 0}
.empty{color:var(--muted);text-align:center}
.prose{max-width:720px}
.prose h1{margin-top:0}
.hero-band{background:linear-gradient(180deg,#fff4ed 0%,var(--bg) 100%);border-bottom:1px solid var(--line)}
.hero-band .hero{max-width:960px;margin:0 auto;padding:2.5rem 1.5rem 2rem}
.quick{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1.25rem;align-items:center}
.quick span{color:var(--muted);font-size:.9rem}
.quick button{background:#fff;border:1px solid #fed7aa;border-radius:999px;padding:.35rem .85rem;font:inherit;font-size:.9rem;cursor:pointer;color:var(--ink)}
.quick button:hover{border-color:var(--brand);color:var(--brand)}
.hint{font-weight:400;color:var(--muted);font-size:.85rem;margin-left:.4rem}
.actions{display:flex;gap:1rem;align-items:center}
button.link{background:none;border:0;color:var(--muted);font:inherit;text-decoration:underline;cursor:pointer}
.results-head{display:flex;justify-content:space-between;align-items:baseline;margin:1.25rem 0 .75rem}
.results-head h2{margin:0;font-size:1.3rem}
#count{color:var(--muted);font-size:.9rem}
.item{transition:transform .15s,box-shadow .15s}
.item:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.07)}
.cta{color:var(--brand);font-size:.85rem;font-weight:600}
.how{margin:3rem 0 1rem}
.how h2{text-align:center}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.steps li{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;color:var(--muted)}
.steps strong{display:block;color:var(--ink);margin-bottom:.3rem}
.steps span{display:inline-grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:var(--brand);color:#fff;font-weight:700;margin-bottom:.6rem}
@media (max-width:600px){.site-header nav a{margin:0 .8rem 0 0}.site-header{flex-direction:column;align-items:flex-start}}
.site-footer{border-top:1px solid var(--line);color:var(--muted);font-size:.85rem;text-align:center;padding:1.5rem}
