*,*:before,*:after{box-sizing:border-box}*{margin:0}html{interpolate-size:allow-keywords}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p{overflow-wrap:break-word;text-wrap:pretty}h1,h2,h3,h4,h5,h6{overflow-wrap:break-word;text-wrap:balance}#root,#app{isolation:isolate}:root{--serif: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--paper: #fbfaf6;--surface: #ffffff;--surface-sunk: #f5f4ee;--eucalyptus: #5c8c82;--eucalyptus-deep: #3d6a61;--eucalyptus-soft: #e7efec;--eucalyptus-line: #c9dcd6;--charcoal: #26383d;--charcoal-soft: #56686c;--charcoal-faint: #8b9a9c;--clay: #c08272;--clay-deep: #9c5c4c;--clay-soft: #f5e5e0;--line: #e2e3dc;--radius: 14px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(38, 56, 61, .05), 0 10px 24px -18px rgba(38, 56, 61, .35);font-family:var(--sans);color-scheme:light dark;color:var(--charcoal);background-color:var(--paper)}@media(prefers-color-scheme:dark){:root{--paper: #191f21;--surface: #212a2c;--surface-sunk: #1c2426;--eucalyptus: #7faea2;--eucalyptus-deep: #a3c8bd;--eucalyptus-soft: #24332f;--eucalyptus-line: #365049;--charcoal: #e8ece9;--charcoal-soft: #a9b6b6;--charcoal-faint: #7c8a8b;--clay: #d69a89;--clay-deep: #e5b3a3;--clay-soft: #332623;--line: #2f3a3c;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 28px -20px rgba(0, 0, 0, .8)}}body{min-height:100dvh;background-color:var(--paper);color:var(--charcoal)}.num{font-family:var(--sans);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:-.005em}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.shell{max-width:1180px;margin-inline:auto;padding:1.25rem 1.25rem 4rem}.shell__nav{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:baseline;justify-content:space-between;padding-block:.5rem 1.25rem;border-bottom:1px solid var(--line)}.shell__mark{font-family:var(--serif);font-size:1.15rem;letter-spacing:.02em;color:var(--charcoal)}.shell__mark-accent{color:var(--eucalyptus)}.shell__links{display:flex;gap:.35rem}.shell__links a{padding:.3rem .7rem;border-radius:999px;font-size:.9rem;color:var(--charcoal-soft);text-decoration:none;transition:background-color .18s ease,color .18s ease}.shell__links a:hover,.shell__links a.active{background-color:var(--eucalyptus-soft);color:var(--eucalyptus-deep)}.shell__footer{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid var(--line);font-size:.82rem;line-height:1.6;color:var(--charcoal-faint);max-width:62ch}.calculator,.page-wide{display:flex;flex-direction:column;gap:1.25rem;padding-top:1.75rem}.calculator__intro{max-width:60ch}.calculator__title{font-family:var(--serif);font-size:clamp(1.9rem,4vw,2.6rem);font-weight:500;letter-spacing:-.015em;line-height:1.1}.calculator__lead{margin-top:.6rem;color:var(--charcoal-soft);font-size:.98rem;line-height:1.65}.page{max-width:60ch;margin-inline:auto;padding:3rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.calculator__grid{display:grid;gap:1.25rem;grid-template-columns:minmax(0,1fr);align-items:start}.calculator__column{display:flex;flex-direction:column;gap:1.25rem;min-width:0}@media(min-width:62rem){.calculator__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.calculator__column:last-child{position:sticky;top:1.25rem}}.panel{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;display:flex;flex-direction:column;gap:1rem;min-width:0}.panel__head{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:baseline;justify-content:space-between}.panel__title{font-family:var(--serif);font-size:1.3rem;font-weight:500;letter-spacing:-.01em}.panel__meta{font-size:.82rem;color:var(--charcoal-faint)}.panel--results{background-color:var(--surface);background-image:linear-gradient(to bottom,color-mix(in oklab,var(--surface),var(--eucalyptus-soft) calc(var(--readiness, 0) * 85%)),var(--surface) 70%);border-color:color-mix(in oklab,var(--line),var(--eucalyptus-line) calc(var(--readiness, 0) * 100%));transition:background-image .4s ease,border-color .4s ease}.panel--results[data-settled=true]{border-color:var(--eucalyptus-line);box-shadow:var(--shadow),inset 0 0 0 1px color-mix(in oklab,var(--eucalyptus-soft),transparent 40%)}.field{display:flex;flex-direction:column;gap:.3rem;min-width:0}.field--inline{flex-direction:row;align-items:center;gap:.6rem}.field--narrow{max-width:8.5rem}.field__label{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--charcoal-faint)}.field__input{width:100%;padding:.5rem .65rem;border:1px solid var(--line);border-radius:var(--radius-sm);background-color:var(--surface);color:var(--charcoal);font-size:.95rem;transition:border-color .16s ease,box-shadow .16s ease}.field__input--compact{width:5.5rem;text-align:right}.field__input:focus-visible{outline:none;border-color:var(--eucalyptus);box-shadow:0 0 0 3px color-mix(in oklab,var(--eucalyptus),transparent 78%)}.field-row{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end}.field__hint{flex:1 1 14rem;font-size:.82rem;color:var(--charcoal-faint);line-height:1.5}.empty{padding:1rem;border:1px dashed var(--line);border-radius:var(--radius-sm);background-color:var(--surface-sunk);color:var(--charcoal-soft);font-size:.9rem}.segmented{display:inline-flex;padding:2px;border:1px solid var(--line);border-radius:999px;background-color:var(--surface-sunk)}.segmented__option{padding:.28rem .75rem;border:0;border-radius:999px;background:transparent;color:var(--charcoal-soft);font-size:.82rem;cursor:pointer;transition:background-color .18s ease,color .18s ease}.segmented__option[aria-pressed=true]{background-color:var(--eucalyptus);color:#fff}@media(prefers-color-scheme:dark){.segmented__option[aria-pressed=true]{color:#141a1b}}.oil-table,.ingredient-table,.compare__table{width:100%;border-collapse:collapse;font-size:.92rem}.oil-table th,.oil-table td,.ingredient-table th,.ingredient-table td{padding:.5rem .4rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}.oil-table thead th,.ingredient-table thead th,.compare__table thead th{font-size:.72rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--charcoal-faint);white-space:nowrap}.oil-table__name{font-weight:500;display:flex;flex-direction:column;gap:.1rem}.oil-table__note{font-size:.76rem;font-weight:400;line-height:1.4;color:var(--charcoal-faint)}.oil-table__amount{width:6.5rem;text-align:right}.oil-table__derived{text-align:right;color:var(--charcoal-soft);white-space:nowrap}.oil-table tfoot th,.oil-table tfoot td,.ingredient-table tfoot th,.ingredient-table tfoot td{padding:.6rem .4rem;border-bottom:0;border-top:2px solid var(--line);font-weight:600}.oil-table tfoot [data-balanced=false]{color:var(--clay-deep)}.oil-table tfoot [data-balanced=true]{color:var(--eucalyptus-deep)}.icon-button{width:1.75rem;height:1.75rem;display:grid;place-items:center;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--charcoal-faint);font-size:1.1rem;line-height:1;cursor:pointer;transition:background-color .16s ease,color .16s ease}.icon-button:hover{background-color:var(--clay-soft);color:var(--clay-deep)}.add-oil{display:flex;flex-direction:column;gap:.3rem}.add-oil__controls{display:flex;gap:.5rem}.add-oil__controls select{flex:1 1 auto;min-width:0}.dial{padding:.85rem .95rem;border:1px solid var(--line);border-left:3px solid var(--eucalyptus-line);border-radius:var(--radius-sm);background-color:var(--surface-sunk);display:flex;flex-direction:column;gap:.5rem;transition:border-left-color .3s ease,background-color .3s ease}.dial[data-state=in-range]{border-left-color:var(--eucalyptus)}.dial[data-state=low],.dial[data-state=high]{border-left-color:var(--clay);background-color:color-mix(in oklab,var(--surface-sunk),var(--clay-soft) 55%)}.dial__head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.dial__slider{width:100%;accent-color:var(--eucalyptus)}.dial[data-state=low] .dial__slider,.dial[data-state=high] .dial__slider{accent-color:var(--clay)}.dial__hint{font-size:.82rem;line-height:1.55;color:var(--charcoal-soft)}.figures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.figure{padding:.75rem .85rem;border:1px solid var(--line);border-radius:var(--radius-sm);background-color:color-mix(in oklab,var(--surface),var(--paper) 45%)}.figure dt{font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:var(--charcoal-faint)}.figure dd{margin-top:.2rem;font-size:1.15rem;font-weight:550;letter-spacing:-.015em}.figure--primary{border-color:var(--eucalyptus-line);background-color:color-mix(in oklab,var(--surface),var(--eucalyptus-soft) 70%)}.figure--primary dd{font-size:1.55rem;color:var(--eucalyptus-deep)}.notice{padding:.85rem .95rem;border-radius:var(--radius-sm);border:1px solid var(--line);font-size:.86rem;line-height:1.55}.notice__title{font-family:var(--serif);font-size:1rem;font-weight:500;margin-bottom:.4rem}.notice__list{display:flex;flex-direction:column;gap:.45rem;padding-left:1.1rem}.notice--critical{border-color:var(--clay);background-color:var(--clay-soft);color:var(--clay-deep)}.notice--critical strong{color:var(--clay-deep)}.notice--caution{border-color:color-mix(in oklab,var(--clay),var(--line) 55%);background-color:color-mix(in oklab,var(--clay-soft),var(--surface) 45%);color:var(--charcoal-soft)}.notice--caution strong{color:var(--clay-deep)}.notice--caution [data-level=note] strong{color:var(--charcoal)}.settled{padding:.7rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--eucalyptus-line);background-color:var(--eucalyptus-soft);color:var(--eucalyptus-deep);font-size:.86rem}.safety{padding:.95rem 1rem;border-radius:var(--radius-sm);background-color:var(--surface-sunk);border:1px solid var(--line)}.safety__title,.qualities__title,.card-block__title{font-family:var(--serif);font-size:1.02rem;font-weight:500;margin-bottom:.55rem}.safety__steps{display:flex;flex-direction:column;gap:.5rem;padding-left:1.2rem;font-size:.88rem;line-height:1.6;color:var(--charcoal-soft)}.safety__steps li::marker{color:var(--eucalyptus)}.safety__steps .num{color:var(--charcoal);font-weight:550}.meters{display:flex;flex-direction:column;gap:.5rem;list-style:none}.meter{display:grid;grid-template-columns:8.5rem 3rem minmax(4rem,1fr) 4rem;align-items:center;gap:.5rem;font-size:.84rem}.meter__label{color:var(--charcoal-soft)}.meter__value{text-align:right;font-weight:600;color:var(--charcoal);transition:color .3s ease}.meter[data-state=in-range] .meter__value{color:var(--eucalyptus-deep)}.meter[data-state=low] .meter__value,.meter[data-state=high] .meter__value{color:var(--clay-deep)}.meter__track{position:relative;display:block;height:6px;border-radius:999px;background-color:var(--surface-sunk);border:1px solid var(--line)}.meter__band{position:absolute;inset-block:0;border-radius:999px;background-color:var(--eucalyptus-soft)}.meter__marker{position:absolute;top:50%;width:9px;height:9px;border-radius:999px;background-color:var(--clay);transform:translate(-50%,-50%);transition:left .32s ease,background-color .32s ease}.meter[data-state=in-range] .meter__marker{background-color:var(--eucalyptus)}.meter__range{text-align:right;font-size:.76rem;color:var(--charcoal-faint)}@media(max-width:34rem){.meter{grid-template-columns:1fr 3rem;grid-template-areas:"label value" "track track";row-gap:.3rem}.meter__label{grid-area:label}.meter__value{grid-area:value}.meter__track{grid-area:track}.meter__range{display:none}}.panel--card{border-color:var(--eucalyptus-line)}.card-grid{display:grid;gap:1.25rem;grid-template-columns:minmax(0,1fr)}@media(min-width:52rem){.card-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}.card-side{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.card-block{min-width:0}.card-block__lead{font-family:var(--sans);font-size:1.35rem;font-weight:550;letter-spacing:-.015em;color:var(--eucalyptus-deep);margin-top:.5rem}.card-block__note{margin-top:.4rem;font-size:.82rem;line-height:1.6;color:var(--charcoal-faint)}.num-col{text-align:right;white-space:nowrap}.ingredient-table tbody [data-kind=lye] th{color:var(--clay-deep)}.ingredient-table tbody [data-kind=fragrance] th{color:var(--eucalyptus-deep)}.rate-guide{display:flex;gap:.4rem;margin-top:.7rem;list-style:none}.rate-guide li{flex:1 1 0;padding:.4rem .5rem;border:1px solid var(--line);border-radius:var(--radius-sm);background-color:var(--surface-sunk);display:flex;flex-direction:column;gap:.1rem;font-size:.78rem;color:var(--charcoal-faint)}.rate-guide .num{color:var(--charcoal);font-size:.85rem}.timeline{display:flex;flex-direction:column;gap:.35rem;margin-top:.75rem;list-style:none}.timeline li{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding-bottom:.35rem;border-bottom:1px dashed var(--line)}.timeline__label{font-size:.82rem;color:var(--charcoal-soft)}.timeline__date{font-weight:550}.button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem .95rem;border:1px solid var(--line);border-radius:999px;background-color:var(--surface);color:var(--charcoal);font-size:.88rem;text-decoration:none;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.button:hover:not(:disabled){border-color:var(--eucalyptus-line);background-color:var(--eucalyptus-soft);color:var(--eucalyptus-deep)}.button:disabled{opacity:.45;cursor:not-allowed}.button--primary{background-color:var(--eucalyptus);border-color:var(--eucalyptus);color:#fff}.button--primary:hover:not(:disabled){background-color:var(--eucalyptus-deep);border-color:var(--eucalyptus-deep);color:#fff}@media(prefers-color-scheme:dark){.button--primary,.button--primary:hover:not(:disabled){color:#141a1b}}.button--quiet{background-color:transparent;border-color:transparent;color:var(--charcoal-soft)}.actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;padding-top:.25rem}.actions__note{font-size:.8rem;color:var(--clay-deep)}.recipe-list{display:grid;gap:.85rem;grid-template-columns:minmax(0,1fr);list-style:none}@media(min-width:52rem){.recipe-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.recipe-list__item{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border:1px solid var(--line);border-radius:var(--radius);background-color:var(--surface);box-shadow:var(--shadow)}.recipe-list__item[data-locked=true]{border-color:var(--eucalyptus-line);background-image:linear-gradient(to bottom,var(--eucalyptus-soft),var(--surface) 60%)}.recipe-list__name{font-family:var(--serif);font-size:1.15rem;font-weight:500;display:flex;align-items:baseline;gap:.4rem}.lock-badge{color:var(--eucalyptus);font-size:.85rem}.recipe-list__meta{margin-top:.2rem;font-size:.8rem;color:var(--charcoal-faint)}.recipe-list__figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(5.5rem,1fr));gap:.5rem}.recipe-list__figures dt{font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:var(--charcoal-faint)}.recipe-list__figures dd{font-size:.95rem;font-weight:550}.recipe-list__actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.checkbox{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--charcoal-soft)}.checkbox input{accent-color:var(--eucalyptus)}.compare__scroll{overflow-x:auto}.compare__table th,.compare__table td{padding:.45rem .7rem;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.compare__table thead th:first-child,.compare__table tbody th{text-align:left;color:var(--charcoal-soft);font-weight:500}.compare__table thead th{font-family:var(--serif);font-size:.92rem;text-transform:none;letter-spacing:0;color:var(--charcoal)}.compare__table [data-state=in-range]{color:var(--eucalyptus-deep)}.compare__table [data-state=low],.compare__table [data-state=high]{color:var(--clay-deep)}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}
