:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, Cambria, "Times New Roman", serif;--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:clamp(2rem, 1.4rem + 2.6vw, 3rem);--leading-tight:1.15;--leading-snug:1.35;--leading-normal:1.55;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--tracking-tight:-.015em;--tracking-caps:.08em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--content-max:72rem;--gutter:var(--space-4);--panel-pad:var(--space-5);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:999px;--color-bg:#f7f1e6;--color-surface:#fffbf4;--color-surface-sunken:#f1e8d8;--color-border:#e3d6c0;--color-border-strong:#c9b597;--color-text:#2e2219;--color-text-muted:#6f5d4c;--color-accent:#9a5a2b;--color-accent-strong:#7c4520;--color-accent-soft:#f3e1cc;--color-on-accent:#fffaf2;--color-focus:#c47a3a;--color-danger:#b23a2a;--color-danger-soft:#fbe6e1;--color-warning:#8a5a00;--color-warning-soft:#fdf0d2;--color-warning-border:#e8c777;--color-night:#3d4a7a;--color-night-soft:#e5e8f5;--shadow-sm:0 1px 2px #4a301814;--shadow-md:0 1px 2px #4a30180f, 0 6px 18px -6px #4a301829;--shadow-lg:0 2px 4px #4a30180f, 0 14px 32px -10px #4a30183d;--shadow-focus:0 0 0 3px #c47a3a59;--duration-fast:.12s;--duration-base:.2s;--duration-slow:.32s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--lift:-1px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#1c1612;--color-surface:#261e18;--color-surface-sunken:#1f1813;--color-border:#3b2f25;--color-border-strong:#5a4838;--color-text:#f2e8da;--color-text-muted:#b8a690;--color-accent:#e0a46c;--color-accent-strong:#f0bb87;--color-accent-soft:#3e2c1d;--color-on-accent:#24180f;--color-focus:#e0a46c;--color-danger:#f08a78;--color-danger-soft:#3d201b;--color-warning:#f2c66d;--color-warning-soft:#362a12;--color-warning-border:#6b5222;--color-night:#aeb9ec;--color-night-soft:#262b45;--shadow-sm:0 1px 2px #0006;--shadow-md:0 1px 2px #00000059, 0 8px 24px -8px #0009;--shadow-lg:0 2px 4px #00000059, 0 16px 36px -10px #000000b3;--shadow-focus:0 0 0 3px #e0a46c66}}@media (width>=640px){:root{--gutter:var(--space-5)}}@media (prefers-reduced-motion:reduce){:root{--duration-fast:.01ms;--duration-base:.01ms;--duration-slow:.01ms;--lift:0px}*,:before,:after{scroll-behavior:auto!important;animation:none!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;overflow-x:hidden}::selection{background:var(--color-accent-soft);color:var(--color-text)}h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-semibold);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.app{min-height:100dvh}.app-header{border-bottom:1px solid var(--color-border);background:radial-gradient(120% 140% at 0% 0%, var(--color-accent-soft) 0%, transparent 60%), var(--color-surface);position:relative}.app-header__inner{max-width:var(--content-max);padding:var(--space-7) var(--gutter) var(--space-6);margin:0 auto}.app-header__inner:before{content:"";width:var(--space-7);height:4px;margin-bottom:var(--space-4);border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--color-accent), var(--color-focus) 70%, transparent);display:block}.app-header__title{font-size:var(--text-3xl);color:var(--color-text)}.app-header__tagline{margin-top:var(--space-3);max-width:40rem;font-size:var(--text-lg);line-height:var(--leading-snug);color:var(--color-text-muted)}.layout{max-width:var(--content-max);padding:var(--space-5) var(--gutter) var(--space-7);gap:var(--space-5);margin:0 auto;display:grid}.layout__inputs,.layout__results{gap:var(--space-5);align-content:start;min-width:0;display:grid}@media (width>=900px){.layout{padding:var(--space-6) var(--gutter) var(--space-8);gap:var(--space-6);grid-template-columns:minmax(0,5fr) minmax(0,7fr)}}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-width:0;box-shadow:var(--shadow-md);padding:var(--panel-pad);animation:rise-in var(--duration-slow) var(--ease-out) both}.layout__inputs .panel:nth-child(2),.layout__results .panel:first-child{animation-delay:60ms}.layout__results .panel:nth-child(2){animation-delay:.12s}.panel__header{margin:0 0 var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.panel__title{font-size:var(--text-xl)}.panel__description{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-text-muted)}@media (width<=479px){:root{--panel-pad:var(--space-4)}.app-header__inner{padding-top:var(--space-6);padding-bottom:var(--space-5)}}.empty-state{justify-items:center;gap:var(--space-2);padding:var(--space-7) var(--space-4);text-align:center;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-sunken);animation:rise-in var(--duration-slow) var(--ease-out) both;display:grid}.empty-state__icon{width:3.5rem;height:3.5rem;margin-bottom:var(--space-2);border-radius:var(--radius-pill);background:var(--color-accent-soft);color:var(--color-accent);box-shadow:0 0 0 6px color-mix(in srgb, var(--color-accent-soft) 45%, transparent);place-items:center;display:grid}.empty-state__message{max-width:22rem;font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-snug)}.empty-state__hint{font-size:var(--text-sm);color:var(--color-text-muted)}.field{gap:var(--space-2);min-width:0;display:grid}.field+.field{margin-top:var(--space-5)}.field__label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.field__hint{font-size:var(--text-xs);color:var(--color-text-muted)}.input{width:100%;min-width:0;min-height:2.75rem;padding:var(--space-2) var(--space-3);font:inherit;font-variant-numeric:tabular-nums;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);accent-color:var(--color-accent);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard), background-color var(--duration-fast) var(--ease-standard)}.input::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.7}.input:hover{border-color:var(--color-accent)}.input:focus-visible{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.input[aria-invalid=true]{border-color:var(--color-danger);background:color-mix(in srgb, var(--color-danger-soft) 40%, var(--color-surface))}.input[aria-invalid=true]:focus-visible{box-shadow:0 0 0 3px var(--color-danger-soft)}.input-group,.field__row{align-items:stretch;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.input-group>.input,.field__row>.input{flex:6rem;min-width:0}.field__row>.segmented{flex:none}.field__error{gap:var(--space-2);font-size:var(--text-sm);color:var(--color-danger);animation:rise-in var(--duration-base) var(--ease-out) both;align-items:baseline;display:flex}.field__error:before{content:"!";content:"!" / "";width:1.1em;height:1.1em;font-size:var(--text-xs);font-weight:var(--weight-semibold);border-radius:var(--radius-pill);background:var(--color-danger);color:var(--color-surface);flex:none;place-items:center;display:inline-grid;transform:translateY(.1em)}.segmented{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius-md);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:3px;min-width:0;padding:3px;display:grid}.segmented__option{display:grid;position:relative}.segmented__option input{z-index:1;opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.segmented__option span{min-height:2.375rem;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:var(--leading-snug);text-align:center;color:var(--color-text-muted);border-radius:calc(var(--radius-md) - 3px);transition:background-color var(--duration-base) var(--ease-standard), color var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard);place-items:center;display:grid}.segmented__option:hover input:not(:checked)+span{color:var(--color-text);background:color-mix(in srgb, var(--color-surface) 50%, transparent)}.segmented__option input:checked+span{background:var(--color-surface);color:var(--color-text);font-weight:var(--weight-semibold);box-shadow:var(--shadow-sm), inset 0 0 0 1px var(--color-border)}.segmented__option input:focus-visible+span{box-shadow:var(--shadow-focus)}.segmented__option:active span{transform:scale(.98)}.badge{align-items:center;gap:var(--space-1);padding:.125rem var(--space-2);font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.02em;white-space:nowrap;border-radius:var(--radius-pill);background:var(--color-surface-sunken);color:var(--color-text-muted);border:1px solid var(--color-border);line-height:1.4;display:inline-flex}.badge--next{background:var(--color-accent);color:var(--color-on-accent);border-color:#0000}.badge--night{background:var(--color-night-soft);color:var(--color-night);border-color:#0000}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:2.75rem;padding:var(--space-2) var(--space-5);font:inherit;font-weight:var(--weight-semibold);border-radius:var(--radius-pill);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard), transform var(--duration-fast) var(--ease-out);border:1px solid #0000;display:inline-flex}.button--primary{background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-sm)}.button--primary:hover{background:var(--color-accent-strong);box-shadow:var(--shadow-md);transform:translateY(var(--lift))}.button--primary:active{box-shadow:var(--shadow-sm);transform:translateY(0)scale(.98)}.button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}.timeline-calendar:before{content:"";width:1.1em;height:1.1em;-webkit-mask:var(--icon-calendar) center / contain no-repeat;-webkit-mask:var(--icon-calendar) center / contain no-repeat;mask:var(--icon-calendar) center / contain no-repeat;background:currentColor}.timeline-calendar{--icon-calendar:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2.5'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E");margin-top:var(--space-5)}@media (width<=479px){.timeline-calendar{width:100%}}.banner-warning{gap:var(--space-3);margin:0 0 var(--space-5);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--color-text);background:var(--color-warning-soft);border:1px solid var(--color-warning-border);border-left:4px solid var(--color-warning);border-radius:var(--radius-md);animation:rise-in var(--duration-base) var(--ease-out) both;align-items:flex-start;display:flex}.banner-warning:before{content:"!";content:"!" / "";width:1.4rem;height:1.4rem;font-weight:var(--weight-semibold);border-radius:var(--radius-pill);background:var(--color-warning);color:var(--color-warning-soft);flex:none;place-items:center;display:inline-grid}.banner-warning strong{color:var(--color-warning)}.timeline-summary{gap:var(--space-2);margin:0 0 var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));display:grid}.timeline-summary__item{gap:var(--space-1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface-sunken);border:1px solid var(--color-border);display:grid}.timeline-summary__item:last-child{background:var(--color-accent-soft);border-color:#0000}.timeline-summary dt{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--color-text-muted)}.timeline-summary dd{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;line-height:var(--leading-tight);white-space:nowrap;margin:0}.timeline-summary__item:last-child dd{color:var(--color-accent-strong)}.timeline{--rail-x:.4375rem;--dot:.875rem;gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid;position:relative}.timeline__step{gap:var(--space-1) var(--space-4);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-6);border-radius:var(--radius-md);transition:background-color var(--duration-base) var(--ease-standard), opacity var(--duration-base) var(--ease-standard);grid-template-columns:5.75rem minmax(0,1fr);display:grid;position:relative}.timeline__step:before{content:"";left:var(--rail-x);top:0;bottom:calc(-1 * var(--space-1));background:var(--color-border-strong);width:2px;position:absolute;transform:translate(-50%)}.timeline__step:first-child:before{top:calc(var(--space-3) + .5em)}.timeline__step:last-child:before{height:calc(var(--space-3) + .5em);bottom:auto}.timeline__step:after{content:"";left:var(--rail-x);top:calc(var(--space-3) + .775em - var(--dot) / 2);width:var(--dot);height:var(--dot);border-radius:var(--radius-pill);background:var(--color-surface);border:2px solid var(--color-border-strong);transition:background-color var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard), box-shadow var(--duration-base) var(--ease-standard);position:absolute;transform:translate(-50%)}.timeline__step:hover{background:var(--color-surface-sunken)}.timeline__time{font-size:var(--text-sm);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;line-height:var(--leading-normal);color:var(--color-accent-strong);white-space:nowrap}.timeline__body{min-width:0}.timeline__title{align-items:center;gap:var(--space-1) var(--space-2);font-family:var(--font-body);font-size:var(--text-base);letter-spacing:0;line-height:var(--leading-snug);flex-wrap:wrap;margin:0;display:flex}.timeline__detail{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-muted)}.timeline__step--past{opacity:.55}.timeline__step--past:after{background:var(--color-border-strong)}.timeline__step--past .timeline__title{text-decoration:line-through;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--color-text-muted);text-decoration-color:var(--color-text-muted)}.timeline__step--past+.timeline__step--past:before,.timeline__step--past:before{background:var(--color-border)}.timeline__step[aria-current=step]{background:var(--color-accent-soft)}.timeline__step[aria-current=step]:after{background:var(--color-accent);border-color:var(--color-accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--color-accent) 25%, transparent)}@media (width<=479px){.timeline__step{padding-left:var(--space-6);grid-template-columns:minmax(0,1fr)}.timeline__step:after{top:calc(var(--space-3) + .65em - var(--dot) / 2)}}.ingredients{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));display:grid}.ingredients section{min-width:0}.ingredients h3{margin:0 0 var(--space-2);font-size:var(--text-lg)}.ingredients dl{margin:0}.ingredient-row{justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);display:flex}.ingredient-row dt{color:var(--color-text-muted)}.ingredient-row dd{font-variant-numeric:tabular-nums;font-weight:var(--weight-semibold);margin:0}.ingredients__total{padding:var(--space-3) var(--space-4);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;color:var(--color-accent-strong);background:var(--color-accent-soft);border-radius:var(--radius-md);grid-column:1/-1;justify-content:space-between;align-items:baseline;margin:0;display:flex}.ingredients__table{border-collapse:collapse;font-variant-numeric:tabular-nums;grid-column:1/-1;width:100%}.ingredients__table caption{margin-bottom:var(--space-2);text-align:left;font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.ingredients__table th,.ingredients__table td{padding:var(--space-2) 0;border-bottom:1px solid var(--color-border);text-align:left}.ingredients__table th{font-weight:var(--weight-regular);color:var(--color-text-muted)}.ingredients__table td{text-align:right;font-weight:var(--weight-semibold)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
