:root{--fg:#2b2622;--muted:#8a7f75;--bg:#faf6f0;--card:#fff;--accent:#b8532f;--border:#eadfd3;--soft:#f3ebe1}
@media (prefers-color-scheme:dark){:root{--fg:#e8e1d9;--muted:#9c9188;--bg:#1d1a17;--card:#26221e;--accent:#e0896a;--border:#3a332d;--soft:#2c2723}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.8 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif}
.wrap{max-width:760px;margin:0 auto;padding:48px 20px 64px}
h1,h2,.site{font-family:"Songti SC","Noto Serif CJK SC","Source Han Serif SC",STSong,serif}
a{color:var(--accent)}
header{text-align:center;margin-bottom:40px}
header .site{display:block;font-size:30px;font-weight:700;color:var(--fg);text-decoration:none;letter-spacing:2px}
header .tagline{color:var(--muted);font-size:14px;margin:4px 0 14px}
nav a{margin:0 12px;color:var(--muted);text-decoration:none;font-size:15px}
nav a:hover{color:var(--accent)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.card{display:block;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:18px 20px;text-decoration:none;color:var(--fg);transition:border-color .15s}
.card:hover{border-color:var(--accent)}
.card h2{font-size:19px;margin:0 0 6px}
.card p{margin:0 0 12px;color:var(--muted);font-size:14px;line-height:1.65}
.card .info{font-size:13px;color:var(--muted)}
.card .info span+span::before{content:"·";margin:0 6px}
article h1{font-size:28px;line-height:1.4;margin:0 0 8px}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.facts span{background:var(--soft);border-radius:999px;padding:2px 12px;font-size:13px;color:var(--muted)}
article h2{font-size:20px;margin:32px 0 10px}
.ingredients{background:var(--soft);border-radius:10px;padding:16px 20px 16px 36px;margin:0;columns:2;column-gap:32px}
.ingredients li{break-inside:avoid}
.steps{list-style:none;counter-reset:step;padding:0;margin:0}
.steps li{counter-increment:step;position:relative;padding:0 0 14px 40px}
.steps li::before{content:counter(step);position:absolute;left:0;top:3px;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-size:13px;line-height:26px;text-align:center}
.tip{border-left:3px solid var(--accent);padding:4px 0 4px 16px;color:var(--muted)}
footer{margin-top:56px;color:var(--muted);font-size:13px;text-align:center}
@media (max-width:520px){.ingredients{columns:1}}
