:root{--cream: #f6eee4;--paper: #fffaf4;--ink: #241916;--muted: #7a6a62;--line: #e4d6c8;--berry: #c13545;--berry-deep: #8e1e32;--leaf: #4a6a4e;--shadow: 0 22px 50px rgba(48, 24, 18, .08);color:var(--ink);background:var(--cream);font-family:Outfit,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:radial-gradient(900px 420px at 8% -8%,#fff7ee 0%,transparent 55%),radial-gradient(700px 380px at 100% 0%,#f8e4dc 0%,transparent 50%),var(--cream)}button,input{font:inherit}img{max-width:100%;display:block}.page{max-width:1080px;margin:0 auto;padding:28px 20px 80px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.brand{margin:0;letter-spacing:.22em;text-transform:uppercase;font-size:12px;color:var(--berry-deep)}.top-actions{display:flex;gap:8px}.hero{margin:0 0 28px;border-radius:18px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}.hero img{width:100%;aspect-ratio:16 / 9;object-fit:cover}.intro h1{margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(36px,7vw,64px);font-weight:560;letter-spacing:-.03em;line-height:1.02}.kicker{margin:0 0 8px;color:var(--berry);letter-spacing:.16em;text-transform:uppercase;font-size:12px}.lede{max-width:62ch;color:var(--muted);font-size:1.08rem;line-height:1.55;margin:14px 0 22px}.meta{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0}.meta div{background:var(--paper);border:1px solid var(--line);padding:12px 14px;border-radius:12px}.meta dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.meta dd{margin:4px 0 0;font-family:Fraunces,Georgia,serif;font-size:1.15rem}.layout{display:grid;gap:18px;margin-top:28px}@media(min-width:880px){.layout{grid-template-columns:.92fr 1.18fr;align-items:start}.ingredients{position:sticky;top:16px}}.card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.card h2{margin:0;font-family:Fraunces,Georgia,serif;font-size:1.7rem;font-weight:560}.aside-head,.servings{display:flex;justify-content:space-between;align-items:center;gap:12px}.count,.yield-note{color:var(--muted);font-size:13px}.servings{margin:16px 0 6px;padding:10px 12px;border:1px dashed var(--line);border-radius:12px}.stepper{display:flex;align-items:center;gap:10px}.stepper strong{min-width:1.6ch;text-align:center;font-family:Fraunces,Georgia,serif;font-size:1.3rem}.stepper button,button.ghost,button{border:1px solid var(--ink);background:var(--ink);color:#fffaf4;border-radius:999px;padding:8px 14px;cursor:pointer}.stepper button{width:36px;height:36px;padding:0;background:var(--berry);border-color:var(--berry)}button.ghost{background:transparent;color:var(--ink)}button:disabled{opacity:.4;cursor:not-allowed}.group{margin-top:18px}.group h3{margin:0 0 8px;color:var(--berry-deep);font-size:13px;letter-spacing:.12em;text-transform:uppercase}.group ul,.tips ul{list-style:none;margin:0;padding:0}.group li+li,.tips li+li{border-top:1px solid var(--line)}.group label{display:flex;gap:10px;align-items:flex-start;padding:9px 0;cursor:pointer;line-height:1.4}.group label.done span{text-decoration:line-through;color:var(--muted)}.group input{margin-top:3px;accent-color:var(--berry)}.steps{list-style:none;margin:16px 0 0;padding:0;counter-reset:none}.steps li+li{border-top:1px solid var(--line)}.step-toggle{display:flex;gap:14px;width:100%;text-align:left;background:transparent;color:inherit;border:0;border-radius:0;padding:16px 0}.step-toggle:hover{background:transparent}.num{flex:none;color:var(--berry);font-family:Fraunces,Georgia,serif;font-size:1.15rem}.step-toggle strong{display:block;font-family:Fraunces,Georgia,serif;font-size:1.12rem;margin-bottom:6px}.step-toggle .body{display:block;color:var(--muted);line-height:1.55}.steps li.done .step-toggle strong,.steps li.done .body{color:#9a8b84}.tips{margin-top:18px}.tips li{padding:10px 0 10px 18px;position:relative;line-height:1.5}.tips li:before{content:"";position:absolute;left:0;top:18px;width:8px;height:8px;border-radius:50%;background:var(--leaf)}.foot{margin-top:28px;color:var(--muted);font-size:14px}.status-line{font-family:Fraunces,Georgia,serif;font-size:1.4rem}.error{color:var(--berry-deep)}@media(max-width:720px){.meta{grid-template-columns:repeat(2,minmax(0,1fr))}.hero img{aspect-ratio:4 / 3}}@media print{.top-actions,.stepper button,button.ghost{display:none!important}.page{padding:0}.hero,.card{box-shadow:none}.ingredients{position:static}}
