:root{--color-bg: #edeee6;--color-surface: #f7f8f2;--color-ink: #2b2a26;--color-ink-muted: #6b6859;--color-sage: #5c7a5a;--color-sage-dark: #3f5a3e;--color-stamp: #a23b2e;--color-line: #d3cdb8;--color-gold: #c99a3e;--font-display: "Fraunces", Georgia, serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "Courier New", monospace;--radius: 4px;--max-width: 960px}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--color-sage);outline-offset:2px}ul,ol{margin:0;padding:0;list-style:none}h1,h2,h3{font-family:var(--font-display);margin:0}.page{max-width:var(--max-width);margin:0 auto;padding:48px 24px 80px}.header{margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid var(--color-line)}.header__eyebrow{font-family:var(--font-mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-sage-dark);margin:0 0 12px}.header__title{font-size:clamp(28px,5vw,44px);font-weight:600;line-height:1.15;margin-bottom:16px}.header__lead{max-width:540px;color:var(--color-ink-muted);font-size:17px}.back-link{display:inline-block;margin-bottom:24px;font-family:var(--font-mono);font-size:14px;color:var(--color-sage-dark)}.back-link:hover{text-decoration:underline}.tag-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}.tag-filter__item{border:1px solid var(--color-line);background:var(--color-surface);color:var(--color-ink-muted);border-radius:999px;padding:6px 14px;font-size:14px}.tag-filter__item.is-active{background:var(--color-sage);border-color:var(--color-sage);color:#fff}.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.tag-list li{font-family:var(--font-mono);font-size:12px;letter-spacing:.03em;text-transform:uppercase;color:var(--color-gold);border:1px solid var(--color-line);border-radius:999px;padding:3px 10px}.empty{color:var(--color-ink-muted)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:24px}.card{display:block;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius);overflow:hidden;transition:transform .15s ease,box-shadow .15s ease}.card:hover{transform:translateY(-3px);box-shadow:0 8px 20px #2b2a261a}.card__photo,.recipe__photo{position:relative;background-color:var(--color-sage);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center}.card__photo{aspect-ratio:4 / 3}.recipe__photo{aspect-ratio:16 / 7;border-radius:var(--radius);margin-bottom:24px}.photo-fallback{font-family:var(--font-display);font-size:48px;color:#ffffffd9}.card__body{padding:16px 18px 20px}.card__title{font-size:20px;font-weight:600;margin-bottom:6px}.card__desc{font-size:14px;color:var(--color-ink-muted);margin:0}.recipe__header{text-align:center;max-width:560px;margin:0 auto 40px}.recipe__title{font-size:clamp(26px,4vw,36px);font-weight:600;margin-bottom:12px}.recipe__desc{color:var(--color-ink-muted)}.recipe__header .tag-list{justify-content:center}.recipe__body{display:grid;grid-template-columns:1fr 1.6fr;gap:48px}.recipe__ingredients h2,.recipe__steps h2{font-size:18px;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--color-line)}.recipe__ingredients ul li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px dashed var(--color-line);font-size:15px}.recipe__ingredients .amount{font-family:var(--font-mono);color:var(--color-sage-dark);white-space:nowrap}.recipe__steps ol{counter-reset:step}.step-section{margin-bottom:28px}.step-section h3{font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--color-sage-dark);margin-bottom:12px}.recipe__steps li{counter-increment:step;position:relative;padding:0 0 20px 36px;font-size:15px}.recipe__steps li:before{content:counter(step);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--color-sage);color:#fff;font-family:var(--font-mono);font-size:13px;display:flex;align-items:center;justify-content:center}.step__timer{display:inline-block;margin-left:8px;font-family:var(--font-mono);font-size:12px;color:var(--color-gold)}.step__photo{display:block;margin-top:10px;max-width:100%;border-radius:var(--radius)}.recipe__gallery{margin-top:48px}.recipe__gallery h2{font-size:18px;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--color-line)}.gallery__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.gallery__grid img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius)}@media (max-width: 640px){.recipe__body{grid-template-columns:1fr;gap:32px}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
