.offer-grid article.product-card{position:relative}.product-card .price-tag{letter-spacing:.02em;margin:14px 0 0;font:500 15px DM Mono,monospace}.product-card .price-tag sup{opacity:.7;margin-left:4px;font-size:10px}.product-card p.product-desc{max-width:260px;margin:10px 0 0;line-height:1.55}.product-card .product-actions{gap:var(--space-2);flex-direction:column;margin-top:auto;padding-top:20px;display:flex}.buy-button{justify-content:center;align-items:center;gap:var(--space-2);background:var(--ink);color:#fff8ee;padding:var(--space-3) var(--space-4);text-transform:uppercase;letter-spacing:.07em;cursor:pointer;text-align:center;border:0;font:10px DM Mono,monospace;display:inline-flex}.buy-button:hover{opacity:.88}.buy-note{letter-spacing:.03em;color:var(--ink-muted);min-height:1.4em;font:10px/1.5 DM Mono,monospace}.learn-more-link{text-transform:uppercase;letter-spacing:.06em;padding-bottom:var(--space-1);border-bottom:1px solid;align-self:flex-start;font:10px DM Mono,monospace}.product-badge{text-transform:uppercase;letter-spacing:.06em;padding:var(--space-1) var(--space-2);border:1px solid #1720184d;border-radius:999px;font:9px DM Mono,monospace;position:absolute;top:23px;right:23px}.resource-header.labguide{background:#c9b28a}.resource-header.tool{background:#a9c9c2}.resource-header.balance{background:#c3d99a}.resource-header.costing{background:#b7c4d6}.resource-header.direction{background:#b89bc4}.resource-header.dilution{background:#8fa3c9}.resource-header.shelflife{background:#d1a679}.resource-header.labguide2{background:#a6714f}.resource-header.acid{background:#c9d97a}.resource-header.pairing{background:#b8a9d9}.resource-header.menu{background:#c17a5e}.recipe-sample{padding:var(--space-6);margin:var(--space-6) 0;background:#f8f5ee80;border:1px solid #17201847}.recipe-sample h3{letter-spacing:-.03em;margin:0 0 6px;font:500 26px/1.05 Playfair Display,serif}.recipe-sample .recipe-meta{text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-3);color:var(--ink-muted);font:10px DM Mono,monospace}.recipe-sample ul{margin:0;padding-left:20px}.recipe-sample li{margin:4px 0;font-size:14px;line-height:1.6}.recipe-locked{padding:var(--space-5);margin:var(--space-3) 0;text-transform:uppercase;letter-spacing:.05em;text-align:center;color:var(--ink-muted);border:1px dashed #17201859;font:11px DM Mono,monospace}.purchase-panel{padding:var(--space-7);margin:var(--space-7) 0;gap:var(--space-5);background:#f8f5eeb3;border:1px solid #1720184d;flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.purchase-panel .price-tag{font:500 28px Playfair Display,serif}.purchase-panel .purchase-copy{max-width:320px;color:var(--ink-muted);font-size:13px;line-height:1.5}@media (width>=801px){.resource-layout:has(.calculator-shell){grid-template-columns:150px 1fr;max-width:1280px;padding-left:48px;padding-right:48px}.article:has(.calculator-shell){max-width:1040px}}.calculator-shell{gap:var(--space-9);margin:var(--space-9) 0;grid-template-columns:1.1fr 1fr;align-items:start;display:grid}.calculator-form{padding:var(--space-7);background:#f8f5ee8c;border:1px solid #1720184d}.calculator-form .field{margin-bottom:22px}.calculator-form .field:last-child{margin-bottom:0}.calculator-form label{text-transform:uppercase;letter-spacing:.06em;margin-bottom:9px;font:10px DM Mono,monospace;display:block}.calculator-form select,.calculator-form input[type=number],.calculator-form input[type=text]{width:100%;padding:var(--space-3) var(--space-3);color:var(--ink);appearance:none;background:#fff;border:1px solid #17201859;border-radius:0;font:14px DM Sans,sans-serif}.calculator-form select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:34px}.calculator-form select:focus-visible,.calculator-form input:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.calculator-form .calc-button{background:var(--ink);color:#fff8ee;width:100%;padding:var(--space-4);text-transform:uppercase;letter-spacing:.09em;cursor:pointer;margin-top:var(--space-1);border:0;font:10px DM Mono,monospace;transition:transform .15s,opacity .15s}.calculator-form .calc-button:hover{opacity:.9}.calculator-form .calc-button:active{transform:scale(.99)}.calculator-form label span{font-size:9px}.field-label-text{text-transform:uppercase;letter-spacing:.06em;margin:0 0 9px;font:10px DM Mono,monospace}.field-label-text span{font-size:9px}.field-caption{color:var(--ink-muted);margin:9px 2px 0;font-size:12px;line-height:1.5}.form-section{padding-bottom:var(--space-6);margin-bottom:var(--space-6);border-bottom:1px solid #17201829}.form-section:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.form-section-eyebrow{text-transform:uppercase;letter-spacing:.09em;margin:0 0 var(--space-4);color:var(--ink-muted);font:10px DM Mono,monospace}.segmented{border:1px solid #17201859;display:flex;overflow:hidden}.segmented input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.segmented label{text-align:center;padding:var(--space-3) var(--space-2);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:#fff;border-right:1px solid #17201840;flex:1;font:11px DM Mono,monospace;transition:background .15s,color .15s}.segmented label:last-of-type{border-right:0}.segmented input:checked+label{background:var(--ink);color:#fff8ee}.segmented input:focus-visible+label{outline:2px solid var(--ink);outline-offset:-3px}.segmented label:hover{background:#17201814}.segmented input:checked+label:hover{background:var(--ink)}.segmented-compact label{padding:var(--space-3) var(--space-2);font-size:10px}.ingredient-row{padding:var(--space-5);margin-bottom:var(--space-4);background:#ffffff73;border:1px solid #17201838;transition:border-color .15s}.ingredient-row:hover{border-color:#17201866}.ingredient-row-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.ingredient-row-index{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);font:10px DM Mono,monospace}.ingredient-row-fields,.cost-row-fields{grid-template-columns:1fr 1fr;gap:14px;display:grid}.cost-row-fields .cost-row-name{grid-column:1/-1}.output-note-inline{text-transform:uppercase;letter-spacing:.04em;opacity:.55;margin-left:var(--space-1);vertical-align:middle;font:9px DM Mono,monospace}.remove-row-button{text-transform:uppercase;letter-spacing:.05em;cursor:pointer;color:var(--ink-muted);background:0 0;border:0;font:9px DM Mono,monospace}.remove-row-button:hover{opacity:1}.add-row-button{width:100%;padding:var(--space-3);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;color:var(--ink);background:0 0;border:1px dashed #17201866;margin-bottom:0;font:10px DM Mono,monospace;transition:background .15s,border-color .15s}.add-row-button:hover{background:#1720180f;border-color:#17201899}.row-cost-details{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px dashed #17201838}.row-cost-details summary{cursor:pointer;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);font:10px DM Mono,monospace;list-style:none}.row-cost-details summary::-webkit-details-marker{display:none}.row-cost-details summary:before{content:"+ ";color:var(--ink)}.row-cost-details[open] summary:before{content:"– "}.row-cost-details summary span{text-transform:none;letter-spacing:0;opacity:.7}.row-cost-details .ingredient-row-fields{margin-top:var(--space-4)}.row-cost-details .field-caption{margin-top:var(--space-3)}.volume-input-group{gap:var(--space-2);align-items:stretch;display:flex}.volume-input-group input{flex:1;min-width:0}.volume-input-group .segmented{flex:1.2}.calculator-form .volume-input-group select{flex:0 0 92px;width:92px}.calculator-form .preset-select{margin-top:var(--space-2);padding:var(--space-2) var(--space-7) var(--space-2) var(--space-3);background-size:4px 4px,4px 4px;font-size:12px}.pour-style-row{gap:var(--space-2);flex-wrap:wrap;margin-top:10px;display:flex}.pour-style-button{padding:var(--space-2) var(--space-3);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;color:var(--ink);background:0 0;border:1px solid #17201859;font:9px DM Mono,monospace;transition:background .15s,color .15s}.pour-style-button:hover{background:#17201814}.pour-style-button.is-active{background:var(--ink);color:#fff8ee}.field-notes{margin:var(--space-9) 0 0;padding-top:var(--space-7);border-top:1px solid #17201833}.field-notes h2{letter-spacing:-.02em;margin:0 0 22px;font:500 24px Playfair Display,serif}.field-notes-grid{grid-template-columns:repeat(3,1fr);gap:26px;display:grid}.field-note h3{text-transform:uppercase;letter-spacing:.06em;margin:0 0 9px;font:10px DM Mono,monospace}.field-note p{opacity:.85;margin:0;font-size:13px;line-height:1.6}@media (width<=800px){.field-notes-grid{grid-template-columns:1fr;gap:22px}}.bottle-tip{margin-top:var(--space-3);padding:var(--space-3) var(--space-3);border:1px dashed #fff8ee59;font-size:12px;line-height:1.55}.output-column{position:sticky;top:24px}.calculator-output{padding:var(--space-7);color:#fff8ee;background:linear-gradient(165deg,#1c2620,#12181a);border:1px solid #1720184d;min-height:100%;box-shadow:0 22px 44px -28px #0000008c}.calculator-output .output-figure{letter-spacing:-.03em;margin:6px 0 2px;font:500 44px Playfair Display,serif}.calculator-output .output-figure-sm{font-size:22px}.calculator-output .output-label{text-transform:uppercase;letter-spacing:.06em;opacity:.75;font:10px DM Mono,monospace}.calculator-output .output-row{margin:var(--space-6) 0;padding-top:var(--space-5);border-top:1px solid #fff8ee29}.calculator-output .output-row:first-child{border-top:0;margin-top:0;padding-top:0}.calculator-output .placeholder{opacity:.6;font-size:13px;line-height:1.6}.calculator-output .output-note{opacity:.75;margin:4px 0 0;font-size:12px;line-height:1.5}.calculator-output .output-note b{opacity:1;font-weight:600}.output-method-label{text-transform:uppercase;letter-spacing:.06em;opacity:.65;margin:10px 0 0;font:10px DM Mono,monospace}.output-stat-row{gap:var(--space-3);grid-template-columns:1fr 1fr;margin-top:10px;display:grid}.output-stat{border:1px solid #fff8ee2e;padding:10px 12px}.output-stat-label{text-transform:uppercase;letter-spacing:.06em;opacity:.6;font:9px DM Mono,monospace;display:block}.output-stat-value{margin-top:3px;font:500 15px DM Sans,sans-serif;display:block}.sr-only{width:1px;height:1px;margin:calc(var(--space-1) * -1);clip:rect(0,0,0,0);white-space:nowrap;border:0;padding:0;position:absolute;overflow:hidden}.pairing-chart{margin-top:var(--space-3);flex-direction:column;gap:16px;display:flex}.pairing-row{gap:var(--space-3);align-items:flex-start;display:flex}.pairing-stars{letter-spacing:2px;white-space:nowrap;padding-top:var(--space-1);flex-shrink:0;font-size:17px;line-height:1}.pairing-copy{flex:1;min-width:0}.pairing-stars.rating-3{color:#8fd6b9}.pairing-stars.rating-2{color:#e0c383}.pairing-stars.rating-1{color:#c98a6a}.pairing-category{text-transform:uppercase;letter-spacing:.06em;opacity:.9;margin:0;font:10px DM Mono,monospace}.pairing-reason{opacity:.75;margin:4px 0 0;font-size:12px;line-height:1.5}.balance-chart{margin-top:var(--space-3);flex-direction:column;gap:16px;display:flex}.balance-row{gap:var(--space-3);align-items:flex-start;display:flex}.balance-dots{letter-spacing:3px;white-space:nowrap;padding-top:var(--space-1);flex-shrink:0;font-size:15px;line-height:1}.balance-dots.rating-3{color:#8fd6b9}.balance-dots.rating-2{color:#e0c383}.balance-dots.rating-1{color:#c98a6a}.balance-copy{flex:1;min-width:0}.balance-label{text-transform:uppercase;letter-spacing:.06em;opacity:.9;margin:0;font:10px DM Mono,monospace}.balance-tip{opacity:.75;margin:4px 0 0;font-size:12px;line-height:1.5}.descriptor-list{gap:var(--space-2);flex-wrap:wrap;margin-top:12px;display:flex}.descriptor-chip{text-transform:uppercase;letter-spacing:.05em;padding:var(--space-2) var(--space-3);color:#fff8ee;border:1px solid #fff8ee59;border-radius:999px;font:10px DM Mono,monospace}.output-list{margin:var(--space-1) 0 0;padding-left:var(--space-4);opacity:.75;font-size:12px;line-height:1.6}.output-list li{margin:3px 0}.safety-note{border-left:1px solid var(--ink);padding:var(--space-1) 0 var(--space-1) var(--space-5);margin:var(--space-7) 0;color:var(--ink-muted);font-size:13px;line-height:1.6}.inline-link{border-bottom:1px solid}.inline-link:hover{opacity:.75}.preview-banner{color:#f6ead9;padding:var(--space-3) 11vw;letter-spacing:.03em;text-align:center;background:#3a2a1e;font:11px/1.6 DM Mono,monospace}.output-actions{gap:var(--space-2);flex-wrap:wrap;margin-top:16px;display:flex}.text-button{padding:var(--space-3) var(--space-4);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;color:var(--ink);background:0 0;border:1px solid #17201859;font:9px DM Mono,monospace;transition:background .15s}.text-button:hover{background:#1720180f}.output-ingredient-list{flex-direction:column;gap:22px;display:flex}.output-ingredient{padding-bottom:var(--space-4);border-bottom:1px solid #fff8ee24}.output-ingredient:last-child{border-bottom:0;padding-bottom:0}.output-ingredient-name{text-transform:uppercase;letter-spacing:.06em;opacity:.75;font:10px DM Mono,monospace}.output-ingredient .output-figure{margin:4px 0 0;font-size:32px}.field-log{margin:var(--space-10) 0 0;padding-top:var(--space-7);border-top:1px solid #17201833}.field-log-header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:18px;display:flex}.field-log-header h2{letter-spacing:-.03em;margin:0;font:500 30px/1 Playfair Display,serif}.field-log-actions{gap:10px;display:flex}.field-log-empty{color:var(--ink-muted);font-size:13px}.field-log-list{margin:0;padding:0;list-style:none}.field-log-entry{justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-4) 0 var(--space-4) var(--space-4);border-bottom:1px solid #17201826;border-left:2px solid #a45e3f66;display:flex}.field-log-date{text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--space-1);color:var(--ink-muted);font:10px DM Mono,monospace}.field-log-summary{margin:0;font-size:13px;line-height:1.5}@media (width<=800px){.calculator-shell{grid-template-columns:1fr;gap:28px}.calculator-form{padding:24px}.ingredient-row-fields,.cost-row-fields{grid-template-columns:1fr}.output-column{position:static}.purchase-panel{flex-direction:column;align-items:flex-start}.preview-banner{padding:14px 7vw}.field-log-entry{flex-direction:column;gap:8px}}@media print{.no-print{display:none!important}body{background:#fff}.resource-header{padding:var(--space-5) 0;background:#fff}.resource-layout{padding:0;display:block}.calculator-shell{display:block}.calculator-form{display:none}.calculator-output{box-shadow:none;color:#000;background:#fff;border:1px solid #000}.calculator-output .output-note,.calculator-output .output-label,.calculator-output .output-list{opacity:1}.output-stat{border-color:#000}}.bundle-grid{padding:var(--space-10) 5vw var(--space-11);background:linear-gradient(160deg,#bd784b1a,#344b4012);border-top:1px solid #1720182e;border-bottom:1px solid #1720182e}.bundle-intro{max-width:640px;margin:0 auto var(--space-9);text-align:center}.bundle-intro h2{font:500 var(--text-xl)/.96 "Playfair Display",serif;letter-spacing:-.05em;margin:0 0 var(--space-5)}.bundle-intro p{color:var(--ink-muted);margin:0;font-size:16px;line-height:1.7}.offer-grid.bundles{border:0;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;padding:0}.offer-grid.bundles article{background:#fffdf8b8;border:1px solid #17201838;min-height:390px}.offer-grid.bundles .product-badge{background:var(--rust);color:var(--cream-light);border-color:#0000}.offer-grid.bundles .price-tag{font:500 30px Playfair Display,serif}.offer-grid.bundles .price-tag sup{color:var(--ink-muted);opacity:1;font:10px DM Mono,monospace}.product-card.is-complete{background:var(--moss);color:var(--cream-light)}.product-card.is-complete .product-desc,.product-card.is-complete .price-tag sup{color:#fff8eed1}.product-card.is-complete .buy-button{background:var(--cream-light);color:var(--moss)}.product-card.is-complete .specimen-plate{mix-blend-mode:screen;opacity:.5}.grid-lede{padding:var(--space-9) var(--space-6) var(--space-6);grid-column:1/-1}.grid-lede h2{font:500 var(--text-lg)/.98 "Playfair Display",serif;letter-spacing:-.045em;margin:var(--space-3) 0 0}@media (width<=800px){.bundle-grid{padding:var(--space-9) 7vw}.bundle-intro{margin-bottom:var(--space-7)}}.pairing-bridge{margin-top:var(--space-3);padding:var(--space-3) 0 var(--space-2) var(--space-3);border-left:2px solid #e0c3838c}.pairing-bridge-label{text-transform:uppercase;letter-spacing:.08em;color:#e0c383;margin:0 0 var(--space-1);font:9px DM Mono,monospace}.pairing-bridge-fix{color:#fff8ee;margin:0 0 var(--space-2);font:500 14px/1.4 DM Sans,sans-serif}.pairing-avoid{opacity:.62}.pairing-avoid strong{opacity:.85;font-weight:600}.archive-toolbar{gap:var(--space-5);margin:var(--space-7) 0 var(--space-6);padding-bottom:var(--space-5);border-bottom:1px solid #1720182e;flex-wrap:wrap;justify-content:space-between;align-items:end;display:flex}.archive-toolbar .field{min-width:220px;margin:0}.archive-toolbar select{width:100%;padding:var(--space-3);color:var(--ink);appearance:none;background:#fff;border:1px solid #17201859;border-radius:0;font:14px DM Sans,sans-serif}.archive-toolbar .output-actions{margin:0}@media (width<=800px){.archive-toolbar{flex-direction:column;align-items:stretch}}.membership-gate{padding:var(--space-8);margin:var(--space-9) 0;background:linear-gradient(160deg,#bd784b1f,#344b4014);border:1px solid #17201838}.membership-gate h2{font:500 var(--text-lg)/1 "Playfair Display",serif;letter-spacing:-.04em;margin:var(--space-3) 0 var(--space-4)}.membership-gate p:not(.eyebrow){max-width:56ch;color:var(--ink-muted);margin:0 0 var(--space-5);line-height:1.65}.membership-gate .buy-button{text-decoration:none}@media (width<=800px){.membership-gate{padding:var(--space-6)}}.safety-note-inline{opacity:.85;margin:var(--space-4) 0 0;padding-top:var(--space-3);border-top:1px solid #fff8ee29;font-size:12px;line-height:1.55}.ferment-type-section[hidden]{display:none}
