:root{color-scheme:light;--ink:#18181b;--muted:#52525b;--paper:#fafafa;--gap:24px}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;font-size:14px;line-height:1.6}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;border:0}
a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid #146c56;outline-offset:4px}
main,footer{width:100%;padding:20px 24px}
.discovery{padding:0}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}
h1{font-size:20px;letter-spacing:-.5px;font-weight:600;margin:0}
h1 span{font:12px ui-monospace,monospace;margin-left:10px;padding:3px 8px;background:#e9ece8;border-radius:8px;vertical-align:middle}
.section-heading p{color:var(--muted);font-size:12px;margin:4px 0}
.search{display:flex;align-items:center;position:relative}
.search span{position:absolute;left:16px;font-size:25px;color:var(--muted)}
input{width:290px;padding:10px 18px 10px 44px;color:var(--ink)}
.rounded-full{border-radius:999px}
.bg-zinc-100{background:#f0f0f2}
.border-0{border:0}
input:focus{outline:0;box-shadow:0 0 0 3px #18181b26}
.toolbar{display:flex;justify-content:space-between;align-items:center;margin:14px 0 20px}
.filters{display:flex;gap:8px}
.filters button{padding:8px 16px;background:#f0f0f2;color:#52525b;transition:background .2s,color .2s}
.filters button:hover{background:#e4e4e7}
.filters .selected{background:var(--ink);color:white}
.rounded-lg{border-radius:8px}
.font-medium{font-weight:500}
.transition-colors{transition:background .2s,color .2s}
.sort-label{color:var(--muted);font-size:12px}
select{background:transparent;border:0;color:var(--ink);padding:7px}
footer{padding-top:0;text-align:center;color:var(--muted);font-size:12px}
.masonry{columns:300px;column-gap:var(--gap)}
.break-inside-avoid{break-inside:avoid}
.rounded-xl{border-radius:12px}
.overflow-hidden{overflow:hidden}
.bg-white{background:white}
.card{margin-bottom:var(--gap);width:100%;display:inline-block;vertical-align:top;box-shadow:0 2px 8px #18181b06;transition:transform .3s,box-shadow .3s}
.card:hover{transform:translateY(-4px);box-shadow:0 15px 30px #00000014}
.cover{position:relative;overflow:hidden;aspect-ratio:16/9;background:#e9e9e8}
.card:nth-child(4n+2) .cover{aspect-ratio:4/3}
.card:nth-child(5n+3) .cover{aspect-ratio:6/5}
.cover:before,.skeleton{content:"";background:linear-gradient(110deg,#e8e8e7 25%,#f5f5f4 40%,#e8e8e7 55%);background-size:250% 100%;animation:loading 1.8s linear infinite}
.cover:before{position:absolute;inset:0}
.cover.loaded:before,.cover.failed:before{display:none}
.cover img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:transform .7s ease-out,opacity .3s}
.cover.loaded img{opacity:1}
.group:hover .cover img{transform:scale(1.05)}
.fallback{position:absolute;inset:0;display:grid;place-items:center;color:#52525b;padding:30px;text-align:center}
.cover .overlay{position:absolute;inset:0;display:flex;align-items:end;padding:18px;background:linear-gradient(transparent 40%,#0009);opacity:0;transition:opacity .3s}
.overlay a{background:white;padding:9px 14px;transform:translateY(16px);transition:transform .3s,opacity .3s;opacity:0}
.group:hover .overlay,.group:focus-within .overlay{opacity:1}
.group:hover .overlay a,.group:focus-within .overlay a{transform:translateY(0);opacity:1}
.card-body{padding:20px}
.card-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:11px}
.store{font-weight:600;display:flex;align-items:center;gap:6px}
.store:before{content:"";width:6px;height:6px;border-radius:50%;background:#16a480}
.badge{background:#f3f4f1;color:#4d574d;border-radius:5px;padding:3px 7px}
.badge.urgent{color:#a12a3e;background:#fff0f1}
.card h3{font-size:20px;line-height:1.4;font-weight:600;letter-spacing:-.4px;margin:14px 0 5px;overflow-wrap:anywhere}
.original{font-size:12px;color:var(--muted);margin:0 0 12px}
.tags{color:var(--muted);font-size:12px;margin:10px 0 18px}
.times{font-size:12px;color:var(--muted);display:grid;gap:4px}
.times div{display:flex;justify-content:space-between;gap:6px}
.times time{color:#3f3f46;font-variant-numeric:tabular-nums}
.card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:18px;padding-top:14px;border-top:1px solid #f0f0f0}
.price{font-weight:600;color:#17775e}
.price del{font-size:11px;color:var(--muted);font-weight:400;margin-left:7px}
.detail{font-size:12px;font-weight:500;padding:5px 0}
.detail:hover{color:#14765c}
.note{color:var(--muted);font-size:12px;margin:12px 0 0}
.empty{padding:65px 20px;text-align:center;background:white;border-radius:12px;color:var(--muted)}
.notice{padding:12px 18px;background:#fff3cb;border-radius:8px;color:#684e0b}
.result{text-align:center;color:var(--muted);font-size:12px;margin:20px 0}
.skeleton{height:380px;border-radius:12px;margin-bottom:24px}
@keyframes loading{to{background-position:-150% 0}
}


@media(max-width:639px){
main,footer{padding-left:16px;padding-right:16px}
.section-heading{align-items:flex-start;flex-wrap:wrap;gap:12px}
.search,input{width:100%}
.toolbar{gap:10px;align-items:start;flex-wrap:wrap}
.filters button{padding:8px 12px}
.masonry{columns:1}
.card:nth-child(n) .cover{aspect-ratio:16/10}
.card h3{font-size:21px}
}
@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}
