:root {
  --forest: #111e18;
  --forest-light: #1c3025;
  --lime: #d8f06b;
  --paper: #f5f4ed;
  --ink: #192a21;
  --muted: #59675d;
  --line: #d7dfd3;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
}
* { box-sizing: border-box; }
body { margin: 0; }
button, input, select { font: inherit; }
button { cursor: pointer; }
a { color: inherit; }
button:disabled { opacity: .45; cursor: default; }
button:focus-visible, a:focus-visible, select:focus-visible, input:focus-visible, summary:focus-visible {
  outline: 3px solid #e39731; outline-offset: 4px;
}
[hidden] { display: none !important; }
.topbar { background: var(--forest); color: #fff; padding: 18px max(20px, calc((100vw - 1180px) / 2)); display: flex; align-items: center; justify-content: space-between; }
.topbar img { width: 136px; height: auto; display: block; }
.topbar a:last-child { font-size: .8rem; text-decoration: none; color: #e5e8da; }
.app-shell { max-width: 1180px; margin: auto; padding: 35px 24px 30px; }
.eyebrow { font-size: .66rem; font-weight: 800; letter-spacing: .15em; margin: 0 0 12px; color: #526950; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(2.2rem, 4.9vw, 4.4rem); letter-spacing: -.055em; line-height: .99; margin-bottom: 16px; }
h1 em { font-family: Georgia, serif; color: #617a3e; }
h2 { font-size: 1.65rem; line-height: 1.12; letter-spacing: -.035em; }
.intro { padding-bottom: 24px; display: grid; grid-template-columns: 1fr .6fr; gap: 10px 40px; }
.intro .eyebrow { grid-column: 1 / -1; }
.intro > p:last-child { color: var(--muted); line-height: 1.6; align-self: end; max-width: 320px; }
.lab { display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); gap: 24px; align-items: stretch; }
.studio { background: var(--forest); color: #fff; border-radius: 24px; padding: 22px 24px; overflow: hidden; position: relative; }
.studio-top { display: flex; justify-content: space-between; color: #c5d2bf; font-size: .62rem; letter-spacing: .12em; }
.live-tag { display: flex; gap: 7px; align-items: center; }
.live-tag i { display: inline-block; width: 6px; height: 6px; background: var(--lime); border-radius: 100%; }
.dessert-stage { height: 300px; display: grid; place-items: center; position: relative; background: radial-gradient(ellipse at center, #33563766 0, transparent 68%); margin: 8px -12px 0; }
.dessert-stage svg { position: absolute; inset: 0; width: 100%; height: 100%; max-height: 100%; overflow: visible; }
.phase { opacity: .34; transition: opacity .35s, filter .35s; }
.phase.active { opacity: 1; filter: drop-shadow(0 0 5px #d8f06b88); }
.phase.done { opacity: .78; }
.prep-vessel { transform-origin: 50% 50%; transition: transform .55s cubic-bezier(.22,1,.36,1); }
.prep-vessel.exploded { transform: translateY(-8px) scale(1.025); }
.dessert-stage.assembling .scene-scoops { animation: assemble-scoop .65s both; }
.dessert-stage.assembling .scene-topping { animation: assemble-topping .85s both; }
@keyframes assemble-scoop { from { transform: translateY(-58px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@keyframes assemble-topping { from { transform: translateY(-95px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.scene-toolbar { display: flex; gap: 8px; justify-content: center; }
.scene-toolbar { position: relative; z-index: 2; }
.scene-toolbar button { border: 1px solid #bed1af55; color: #ecf2de; background: #ffffff0b; border-radius: 999px; padding: 8px 13px; font-size: .74rem; min-height: 40px; }
.scene-toolbar button[aria-pressed=true] { background: var(--lime); color: var(--forest); }
.studio-step-label { text-align: center; color: var(--lime); font-size: .61rem; font-weight: 800; letter-spacing: .14em; margin: 5px 0 14px; }
.illustration-note { text-align: center; color: #b4c5af; font-size: .65rem; line-height: 1.4; margin: 10px 0 18px; }
.live-description .eyebrow { color: var(--lime); }
.live-description h2 { font-size: 1.55rem; margin-bottom: 9px; }
.live-description > p:last-child { color: #c9d7c1; font-size: .78rem; line-height: 1.6; }
.macro-row { display: grid; grid-template-columns: 1fr 1fr .6fr; border-top: 1px solid #ffffff22; border-bottom: 1px solid #ffffff22; padding: 17px 0; gap: 12px; }
.macro-row div { display: flex; flex-direction: column; gap: 8px; }
.macro-row strong { font-size: 1.7rem; letter-spacing: -.045em; }
.macro-row span { font-size: .54rem; color: #c2d0b9; letter-spacing: .08em; }
.delta-note { color: #e7f2b7; font-size: .74rem; min-height: 32px; line-height: 1.45; margin-top: 15px; }
.workbench { background: #fffefa; border: 1px solid var(--line); border-radius: 24px; padding: 24px; }
.bench-heading { display: flex; justify-content: space-between; align-items: start; gap: 15px; }
.bench-heading h2 { font-size: 1.45rem; margin-bottom: 22px; }
.text-button { background: transparent; border: 0; color: var(--muted); font-size: .76rem; padding: 8px; text-decoration: underline; text-underline-offset: 4px; }
.step-tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 24px; }
.step-tabs button { text-align: left; background: #f2f2e9; border: 1px solid transparent; border-radius: 9px; padding: 10px 8px; color: var(--muted); font-size: .6rem; letter-spacing: .03em; min-height: 47px; }
.step-tabs button span { font-weight: 800; display: block; font-size: .68rem; padding-top: 5px; }
.step-tabs button[aria-current=step] { background: var(--forest); color: #fff; }
.step-tabs button.chosen { border-color: #bdca8c; }
.step-panel { min-height: 292px; }
.step-panel h3 { font-size: 1.3rem; margin: 0 0 8px; letter-spacing: -.025em; }
.step-panel > p { font-size: .78rem; line-height: 1.5; color: var(--muted); margin-bottom: 16px; }
.option-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.option-card { border: 1px solid var(--line); background: #fff; border-radius: 13px; padding: 13px; text-align: left; min-height: 80px; color: var(--ink); transition: border-color .15s, background .15s; display: flex; align-items: center; gap: 10px; }
.option-card[aria-pressed=true] { border: 2px solid var(--forest); background: #eef3df; padding: 12px; }
.option-card:hover { border-color: #71864e; }
.option-card .swatch { width: 31px; height: 31px; background: var(--swatch); box-shadow: inset -4px -4px 6px #0001; border-radius: 50%; flex-shrink: 0; }
.option-card strong { display: block; font-size: .84rem; line-height: 1.25; }
.option-card small { font-size: .64rem; line-height: 1.35; color: var(--muted); display: block; margin-top: 5px; }
.flavor-card { display: block; padding: 0; overflow: hidden; }
.flavor-card[aria-pressed=true] { padding: 0; }
.flavor-card img { width: 100%; height: 56px; object-fit: cover; display: block; }
.flavor-card .option-copy { padding: 8px 10px; }
.step-navigation { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 18px 0; }
.step-navigation span { font-size: .72rem; color: var(--muted); }
.primary-button, .secondary-button { min-height: 44px; padding: 11px 16px; border-radius: 999px; font-size: .78rem; font-weight: 750; border: 1px solid var(--forest); }
.primary-button { color: var(--forest); background: var(--lime); border-color: #bdcf5f; }
.secondary-button { color: var(--forest); background: transparent; }
.remix-box { border-top: 1px solid var(--line); padding-top: 19px; }
.remix-box .eyebrow { margin-bottom: 8px; }
.remix-box > p:not(.eyebrow) { font-size: .78rem; color: var(--muted); line-height: 1.45; margin-bottom: 10px; }
.remix-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.remix-actions button, #undo-button { background: #e9efdd; color: #243d22; padding: 9px 11px; min-height: 40px; border: 1px solid #cbd6b7; border-radius: 8px; font-size: .71rem; font-weight: 700; }
#remix-feedback { min-height: 16px; margin-top: 10px; }
#undo-button { background: transparent; }
.preset-section { margin-top: 15px; }
.preset-section .eyebrow { display: block; }
#presets { display: flex; flex-wrap: wrap; gap: 7px; }
#presets button { background: transparent; border: 0; border-bottom: 1px solid #a9b88d; color: #415b2d; font-size: .71rem; padding: 6px 0; margin-right: 7px; }
.recipe-section { padding: 42px 0 26px; }
.recipe-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 22px; }
.recipe-heading h2 { margin-bottom: 0; font-size: 1.9rem; }
.actions { display: flex; flex-wrap: wrap; gap: 8px; }
.servings-row { display: flex; align-items: center; gap: 16px; font-size: .77rem; color: var(--muted); margin-bottom: 16px; }
.servings-row select { min-height: 40px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: #fff; }
.servings-row p { margin-bottom: 0; }
.recipe-card { background: #fffefa; border-radius: 22px; border: 1px solid var(--line); padding: 28px; }
.recipe-top { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 18px; margin-bottom: 22px; border-bottom: 1px solid var(--line); }
.recipe-top h3 { font-size: 1.4rem; margin-bottom: 8px; }
.recipe-top p { font-size: .76rem; color: var(--muted); margin-bottom: 0; }
.recipe-columns { display: grid; grid-template-columns: .8fr 1.2fr; gap: 35px; }
.recipe-columns h4 { margin: 0 0 14px; font-size: .86rem; }
.ingredient-list { padding: 0; list-style: none; margin: 0; }
.ingredient-list li { padding: 9px 0; border-bottom: 1px dashed #dee5d6; font-size: .78rem; display: flex; justify-content: space-between; gap: 10px; line-height: 1.5; }
.ingredient-list small { color: var(--muted); display: block; font-size: .65rem; }
.step-list { padding-left: 22px; margin: 0; font-size: .78rem; line-height: 1.75; color: #455245; }
.step-list li { margin-bottom: 15px; padding-left: 7px; }
.step-list li::marker { color: #748741; font-weight: 800; }
.allergens { font-size: .7rem; line-height: 1.5; color: #746747; padding-top: 18px; margin-bottom: 0; }
.label-editor { border: 1px solid var(--line); background: #fffefa; padding: 17px 20px; border-radius: 14px; margin-top: 16px; font-size: .76rem; }
summary { cursor: pointer; min-height: 34px; font-weight: 750; }
.label-editor p { line-height: 1.6; color: var(--muted); }
.label-field { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line); align-items: center; }
.label-field input { width: 100%; border: 1px solid var(--line); background: #fff; border-radius: 7px; padding: 8px; min-height: 40px; }
.label-field label { display: block; font-size: .64rem; line-height: 1.4; }
.safety-note { font-size: .71rem; line-height: 1.7; color: var(--muted); padding: 15px 8px 0; }
.rescue { background: #e4ead9; border-radius: 20px; padding: 26px; }
.rescue h2 { max-width: 500px; }
.rescue details { border-bottom: 1px solid #bac8a9; padding: 8px 0; font-size: .81rem; }
.rescue details p { line-height: 1.6; max-width: 780px; }
.rescue > a { display: inline-block; margin-top: 18px; font-size: .75rem; }
footer { display: flex; justify-content: space-between; padding-top: 28px; gap: 10px; color: var(--muted); font-size: .72rem; }
.toast { position: fixed; left: 50%; bottom: 22px; transform: translate(-50%, 20px); opacity: 0; pointer-events: none; background: #17251b; color: #fff; border: 1px solid #bccd7555; padding: 12px 20px; border-radius: 12px; font-size: .77rem; transition: opacity .2s, transform .2s; z-index: 50; max-width: 90vw; width: max-content; }
.toast.show { transform: translate(-50%, 0); opacity: 1; }
.embedded .topbar, .embedded .intro, .embedded footer { display: none; }
.embedded .app-shell { padding: 12px; }
@media (max-width: 750px) {
  .app-shell { padding: 23px 13px 25px; }
  .topbar { padding: 13px; }
  .topbar img { width: 115px; }
  .intro { display: block; padding-bottom: 17px; }
  .intro > p:last-child { font-size: .86rem; margin: 0; max-width: none; }
  h1 { font-size: 2.3rem; }
  .lab { grid-template-columns: 1fr; gap: 15px; }
  .studio { position: sticky; top: 0; z-index: 20; padding: 10px 16px 12px; border-radius: 0 0 18px 18px; box-shadow: 0 8px 22px #111e1840; }
  .dessert-stage { height: 168px; margin-top: 0; }
  .studio-top { font-size: .57rem; }
  .scene-toolbar { position: relative; right: auto; bottom: auto; margin-top: -38px; margin-right: 8px; justify-content: flex-end; }
  .scene-toolbar button { padding: 6px 10px; min-height: 32px; font-size: .62rem; }
  .studio-step-label { margin: -1px 0 4px; font-size: .54rem; }
  .illustration-note, .live-description > p:last-child, .delta-note { display: none; }
  .live-description { position: static; margin-top: 9px; max-width: none; }
  .live-description .eyebrow { display: none; }
  .live-description h2 { font-size: .94rem; margin-bottom: 0; }
  .macro-row { padding: 8px 0 0; border-bottom: 0; }
  .macro-row strong { font-size: 1.12rem; }
  .macro-row span { font-size: .46rem; }
  .workbench { padding: 20px 16px; border-radius: 18px; }
  .bench-heading h2 { font-size: 1.25rem; }
  .step-panel { min-height: 280px; }
  .step-panel h3 { font-size: 1.2rem; }
  .option-card { min-height: 86px; gap: 8px; }
  .option-card strong { font-size: .78rem; }
  .option-card small { font-size: .62rem; }
  .flavor-card img { height: 52px; }
  .recipe-heading { display: block; }
  .actions { margin-top: 18px; }
  .actions button { font-size: .7rem; padding: 10px 12px; flex: 1; }
  .recipe-card { padding: 20px 16px; }
  .recipe-columns { grid-template-columns: 1fr; gap: 24px; }
  .recipe-top { display: block; }
  .label-field { gap: 8px; }
  .label-field label { font-size: .58rem; }
  footer { display: block; line-height: 2; }
  .rescue { padding: 22px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* Version 4: culinary preview and WordPress-aware scroll continuity. */
.lab { position: relative; align-items: start; }
.studio { position: sticky; top: 8px; align-self: start; z-index: 20; }
.preview-body { display: block; }
.dessert-stage { overflow: hidden; border-radius: 15px; margin: 15px 0; }
.food-preview { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.preview-summary { min-width: 0; }
.studio-step-label { text-align: left; margin: 0 0 8px; font-size: .6rem; line-height: 1.4; }
.scene-toolbar { position: relative; margin: 15px 0 0; justify-content: flex-start; flex-wrap: wrap; }
.scene-toolbar button { min-height: 38px; font-size: .7rem; }
.prep-timeline { display: flex; list-style: none; margin: 12px 0 0; padding: 0; gap: 7px; justify-content: space-between; }
.prep-timeline li { flex: 1; }
.prep-timeline button { width: 100%; background: transparent; color: #d6e4cf; border: 0; border-top: 2px solid #a9c29233; padding: 9px 0 3px; font-size: .63rem; min-height: 32px; }
.prep-timeline button[aria-current=step] { color: var(--lime); border-color: var(--lime); }
.illustration-note { text-align: left; margin: 10px 0 0; font-size: .62rem; line-height: 1.45; }
.parent-scroll-preview .studio { position: relative; top: 0; transform: translateY(var(--parent-shift, 0px)); transition: none; will-change: transform; }
@media (max-width: 750px) {
  .lab { display: flex; flex-direction: column; gap: 14px; align-items: stretch; }
  .studio { width: 100%; padding: 12px; border-radius: 15px; flex-shrink: 0; top: 0; }
  .studio-top { font-size: .53rem; margin-bottom: 10px; }
  .preview-body { display: grid; grid-template-columns: 42% minmax(0, 1fr); gap: 13px; align-items: center; }
  .dessert-stage { height: 123px; margin: 0; border-radius: 11px; }
  .live-description { position: static; margin: 0; max-width: none; }
  .live-description h2 { font-size: .96rem; margin: 0 0 7px; line-height: 1.2; }
  .live-description > p:last-child { display: none; }
  .studio-step-label { font-size: .52rem; margin-bottom: 5px; }
  .macro-row { grid-template-columns: 1fr 1fr; border: 0; padding: 4px 0 0; gap: 7px; }
  .macro-row .serving-metric { display: none; }
  .macro-row strong { font-size: 1.13rem; }
  .macro-row span { font-size: .44rem; letter-spacing: .035em; }
  .scene-toolbar { position: static; right: auto; bottom: auto; margin: 10px 0 0; justify-content: space-between; gap: 6px; flex-wrap: nowrap; }
  .scene-toolbar button { min-height: 36px; padding: 7px 10px; font-size: .63rem; flex: 1; }
  .prep-timeline { margin: 6px 0 0; gap: 7px; }
  .prep-timeline button { padding: 5px 0 0; font-size: .57rem; min-height: 24px; }
  .illustration-note { display: block; font-size: .55rem; margin: 7px 0 0; }
  .delta-note { display: none; }
  .workbench { width: 100%; flex-shrink: 0; }
  .step-tabs { margin-bottom: 19px; }
  .bench-heading .eyebrow { font-size: .57rem; }
  .bench-heading h2 { font-size: 1.13rem; }
}

/* Optional hands-on preparation. Photo mode remains the compact default. */
.demo-controls { margin-top: 12px; padding-top: 12px; border-top: 1px solid #d3e8c72b; }
.demo-copy strong { display: block; color: var(--lime); font-size: .85rem; }
.demo-copy p { margin: 6px 0 9px; color: #e1e8d8; font-size: .73rem; line-height: 1.45; }
.demo-controls progress { appearance: none; width: 100%; height: 4px; border: none; background: #dae7d326; border-radius: 4px; display: block; margin-bottom: 10px; }
.demo-controls progress::-webkit-progress-bar { background: #dae7d326; border-radius: 4px; }
.demo-controls progress::-webkit-progress-value { background: var(--lime); border-radius: 4px; }
.demo-controls progress::-moz-progress-bar { background: var(--lime); border-radius: 4px; }
.demo-actions { display: flex; gap: 10px; }
.demo-actions button, .preparation-play { border: 1px solid #bbcfac70; background: #f1f7e708; color: #e9f0df; border-radius: 9px; font-size: .73rem; padding: 9px 12px; min-height: 44px; }
#demo-action { flex: 1; background: var(--lime); color: var(--forest); border-color: var(--lime); font-weight: 750; }
#demo-status { margin: 8px 0 0; font-size: .68rem; color: #d5e6c4; }
#demo-status:empty { display: none; }
.hands-on-stage { touch-action: none; user-select: none; -webkit-user-select: none; cursor: grab; }
.hands-on-stage:active { cursor: grabbing; }
.preparation-play { margin-top: 10px; width: 100%; }
.demo-finished { animation: dessert-reveal .35s ease-out; }
@keyframes dessert-reveal { from { opacity: .2; transform: scale(1.03); } to { opacity: 1; transform: scale(1); } }
@media (max-width: 750px) {
  .scene-toolbar button { min-height: 44px; }
  .studio.hands-on .preview-body { grid-template-columns: 58% minmax(0, 1fr); gap: 10px; }
  .studio.hands-on .dessert-stage { height: 150px; }
  .studio.hands-on .live-description h2 { font-size: .83rem; }
  .studio.hands-on .macro-row strong { font-size: 1rem; }
  .demo-controls { margin-top: 9px; padding-top: 9px; }
  .demo-copy strong { font-size: .76rem; }
  .demo-copy p { font-size: .64rem; margin: 5px 0 7px; }
  .demo-actions button { font-size: .66rem; padding: 8px 10px; }
  .demo-controls progress { margin-bottom: 8px; }
}

/* Clear recipe access without requiring the demo or all four steps. */
.studio-bottom { display: flex; align-items: center; gap: 12px; margin-top: 10px; }
.studio-bottom .illustration-note { flex: 1; margin: 0; }
.quick-recipe { flex-shrink: 0; min-height: 44px; border: 1px solid #c4d66b; border-radius: 9px; background: var(--lime); color: var(--forest); padding: 10px 12px; font-size: .73rem; font-weight: 750; }
.builder-disclaimer { font-size: .71rem; line-height: 1.5; color: var(--muted); border-top: 1px solid var(--line); margin: 18px 0 0; padding-top: 12px; }
@media (max-width: 750px) {
  .studio-bottom { gap: 8px; margin-top: 8px; }
  .studio-bottom .illustration-note { font-size: .61rem; }
  .quick-recipe { font-size: .7rem; padding: 8px 10px; }
  .bench-heading h2 { margin-bottom: 18px; }
  .builder-disclaimer { font-size: .67rem; }
  .recipe-top { display: flex; gap: 12px; }
  .recipe-top h3 { font-size: 1.1rem; }
  .recipe-top > p { flex-shrink: 0; }
  .label-field { grid-template-columns: 1fr 1fr; }
  .label-field > span { grid-column: 1 / -1; }
  .label-field input { min-height: 44px; font-size: 16px; }
}

/* A-Z Recipe Lab: shared recipe switcher and savory builders. */
.recipe-lab-nav { background: #e8eddc; border: 1px solid #cbd7bb; border-radius: 24px; padding: 22px; margin-bottom: 18px; }
.lab-nav-heading { display: flex; justify-content: space-between; gap: 18px; align-items: end; margin-bottom: 16px; }
.lab-nav-heading h2 { margin: 0; }
.lab-nav-heading > span { color: var(--muted); font-size: .74rem; }
.lab-recipe-tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.lab-recipe-tab { background: #fbfcf7; color: var(--ink); border: 1px solid #cbd7bb; border-radius: 13px; padding: 13px; text-align: left; min-height: 116px; display: flex; flex-direction: column; gap: 6px; }
.lab-recipe-tab.active { background: var(--forest); color: #fff; border-color: var(--forest); box-shadow: 0 7px 0 #c5d598; transform: translateY(-2px); }
.lab-tab-kicker { color: #6c7d50; font-size: .58rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.lab-recipe-tab.active .lab-tab-kicker { color: var(--lime); }
.lab-recipe-tab strong { font-size: .92rem; line-height: 1.15; }
.lab-recipe-tab small { color: var(--muted); font-size: .66rem; line-height: 1.35; }
.lab-recipe-tab.active small { color: #d3dfca; }
.savory-lab { display: grid; gap: 18px; }
.savory-hero { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); background: var(--forest); border-radius: 24px; overflow: hidden; color: #fff; }
.savory-photo-wrap { min-height: 360px; position: relative; background: #1b2a20; }
.savory-photo { width: 100%; height: 100%; min-height: 360px; object-fit: cover; display: block; }
.photo-kicker { position: absolute; top: 17px; left: 17px; background: var(--lime); color: var(--forest); border-radius: 999px; padding: 7px 10px; font-size: .59rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.savory-intro { padding: 30px; display: flex; flex-direction: column; justify-content: center; }
.savory-intro .eyebrow { color: var(--lime); }
.savory-intro h2 { font-size: clamp(2rem, 4vw, 3.3rem); margin-bottom: 11px; }
.savory-intro > p:not(.eyebrow) { color: #cbd8c2; line-height: 1.6; max-width: 450px; }
.savory-macros { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #ffffff22; border-bottom: 1px solid #ffffff22; padding: 17px 0; margin: 12px 0 20px; gap: 12px; }
.savory-macros div { display: flex; flex-direction: column; gap: 5px; }
.savory-macros strong { font-size: 1.45rem; }
.savory-macros span { color: #c0d0b8; font-size: .57rem; letter-spacing: .1em; }
.savory-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.savory-actions .text-button { color: #d6e5ca; }
.savory-builder { background: #fffefa; border: 1px solid var(--line); border-radius: 24px; padding: 24px; }
.savory-controls { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding-bottom: 23px; border-bottom: 1px solid var(--line); }
.savory-control { display: grid; gap: 6px; font-size: .65rem; color: var(--muted); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.savory-control select { width: 100%; border: 1px solid var(--line); background: #f8faf3; color: var(--ink); border-radius: 9px; min-height: 44px; padding: 9px; font-size: .76rem; font-weight: 650; text-transform: none; letter-spacing: normal; }
.savory-result { display: grid; grid-template-columns: .85fr 1.15fr; gap: 36px; padding-top: 24px; }
.savory-list { margin: 0; padding: 0; list-style: none; }
.savory-list li { border-bottom: 1px dashed #dce5d5; padding: 10px 0; color: #3f4e42; font-size: .78rem; }
.savory-steps { margin: 0; padding-left: 22px; color: #3f4e42; font-size: .8rem; line-height: 1.7; }
.savory-steps li { padding-left: 7px; margin-bottom: 11px; }
.savory-steps li::marker { color: #789249; font-weight: 800; }
.savory-note { color: var(--muted); font-size: .7rem; line-height: 1.6; border-top: 1px solid var(--line); padding-top: 16px; margin: 20px 0 0; }
@media (max-width: 750px) {
  .recipe-lab-nav { padding: 17px; border-radius: 18px; }
  .lab-nav-heading { display: block; }
  .lab-nav-heading > span { display: block; margin-top: 5px; }
  .lab-recipe-tabs { display: flex; overflow-x: auto; padding: 3px 2px 9px; scroll-snap-type: x mandatory; }
  .lab-recipe-tab { min-width: 180px; min-height: 109px; scroll-snap-align: start; }
  .savory-hero { grid-template-columns: 1fr; border-radius: 18px; }
  .savory-photo-wrap, .savory-photo { min-height: 230px; height: 230px; }
  .savory-intro { padding: 22px 18px; }
  .savory-intro h2 { font-size: 2rem; }
  .savory-builder { padding: 18px; border-radius: 18px; }
  .savory-controls { grid-template-columns: 1fr 1fr; }
  .savory-result { grid-template-columns: 1fr; gap: 25px; }
  .savory-actions .text-button { width: 100%; text-align: left; }
}
