:root{--bg: #0E0E11;--surface: #16161A;--surface-2: #1D1D22;--border: #2E2A32;--accent: #E6B73D;--accent-hover: #F2C75B;--accent-active: #C49A2E;--accent-dim: rgba(230, 183, 61, .13);--text: #f1e9d8;--text-muted: #a99f8c;--brass: #9A8A65;--oxblood: #6e2c26;--radius: 10px;--radius-lg: 18px;--max-w: 1280px;--font-display: "Cormorant Garamond", Georgia, serif;--font-body: "Jost", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", "Courier New", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-weight:300;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.container{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 1.25rem}.site-nav{border-bottom:1px solid var(--border);padding:1rem 0}.site-nav .container{display:flex;align-items:center;justify-content:space-between;gap:1rem}.site-logo{font-family:var(--font-display);font-size:1.35rem;font-weight:500;color:var(--accent);letter-spacing:.1em;white-space:nowrap}.nav-links{display:flex;gap:1.5rem;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted)}.nav-links a:hover{color:var(--text)}.hero{padding:2.25rem 0 2rem;text-align:center}.hero h1{font-family:var(--font-display);font-size:clamp(2rem,6vw,3.5rem);font-weight:500;letter-spacing:.08em;color:var(--accent);line-height:1.1}.hero-tagline{margin-top:.75rem;color:var(--text);font-size:1rem;font-weight:400;letter-spacing:.08em}.hero-sub{margin-top:.5rem;color:var(--text-muted);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase}.search-wrap{margin:1.75rem auto 0;max-width:560px;position:relative}.search-wrap svg{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-input{width:100%;padding:.85rem 1rem .85rem 2.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:1rem;font-family:var(--font-body);font-weight:300;outline:none;transition:border-color .2s}.search-input:focus{border-color:var(--accent-hover)}.search-input::placeholder{color:var(--text-muted)}.filter-row{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1.25rem;padding-bottom:.25rem}.filter-btn{padding:.4rem .9rem;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:.75rem;font-family:var(--font-body);font-weight:400;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .15s;white-space:nowrap}.filter-btn:hover{border-color:var(--accent-hover);color:var(--accent-hover)}.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#0e0e11;font-weight:500}.results-count{text-align:center;color:var(--text-muted);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;margin:1.5rem 0 1rem;min-height:1.2em}.cocktail-grid{display:grid;grid-template-columns:1fr;gap:1rem;padding-bottom:4rem}@media(min-width:560px){.cocktail-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.cocktail-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:1200px){.cocktail-grid{grid-template-columns:repeat(4,1fr)}}.cocktail-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;transition:border-color .2s,transform .15s;cursor:pointer}.cocktail-card:hover{border-color:var(--accent-hover);transform:translateY(-2px)}.card-name{font-family:var(--font-display);font-size:1.15rem;font-weight:500;color:var(--text);margin-bottom:.25rem;line-height:1.25}.card-family{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.9rem}.card-badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;background:var(--accent-dim);color:var(--accent);font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.8rem}.card-meta{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:var(--text-muted);margin-top:auto}.card-meta-row{display:flex;align-items:center;gap:.4rem}.card-meta-label{color:var(--text-muted);min-width:4rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}.card-meta-value{color:var(--text)}.page-header{padding:2.5rem 0 2rem;border-bottom:1px solid var(--border);margin-bottom:2rem}.page-header h1{font-family:var(--font-display);font-size:clamp(2.75rem,6vw,3.625rem);font-weight:500;color:var(--text);line-height:1.05}.eyebrow-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.eyebrow{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--accent)}.view-toggle,.unit-toggle{display:flex;align-items:center;gap:.5rem}.toggle-sep{color:var(--text-muted);font-size:11px;user-select:none}.toggle-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-family:var(--font-body);padding:0;transition:color .12s;line-height:1}.toggle-btn:hover{color:var(--text)}.toggle-btn.active{color:var(--accent);font-weight:700}[data-view=spec] .view-full,[data-view=full] .view-spec{display:none}.back-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--text-muted);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.5rem;transition:color .15s}.back-link:hover{color:var(--accent-hover)}.recipe-grid{display:grid;gap:2rem;grid-template-columns:1fr;margin-bottom:4rem}@media(min-width:768px){.recipe-grid{grid-template-columns:1fr 1fr}}.recipe-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem}.recipe-section-title{font-size:.65rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);margin-bottom:1rem}.ingredients-list{list-style:none;display:flex;flex-direction:column;gap:.75rem}.ingredient-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.ingredient-row:last-child{border-bottom:none;padding-bottom:0}.ingredient-name{font-size:.9rem;color:var(--text)}.ingredient-name a{border-bottom:1px solid transparent;transition:border-color .15s,color .15s}.ingredient-name a:hover{color:var(--accent-hover);border-color:var(--accent-hover)}.ingredient-spec{font-size:.72rem;color:var(--text-muted);margin-top:.1rem}.ingredient-amount{font-family:var(--font-mono);font-size:.85rem;color:var(--accent);white-space:nowrap}.spec-grid{display:grid;gap:.75rem}.spec-row{display:flex;gap:1rem;align-items:baseline}.spec-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);min-width:5.5rem;flex-shrink:0}.spec-value{font-size:.9rem;color:var(--text)}.notes-box{background:var(--accent-dim);border:1px solid rgba(230,183,61,.24);border-radius:var(--radius);padding:1rem 1.25rem;font-size:.875rem;color:var(--text);margin-top:1.5rem;line-height:1.55}.notes-box.substitution{border-color:#8f6ae6}.notes-box.preference{border-color:#3f8fd1}.notes-box strong{color:var(--accent);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;display:block;margin-bottom:.35rem}.view-full{max-width:700px;padding-bottom:4rem}.fs-spec-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--accent);padding-bottom:10px;margin-bottom:4px}.fs-spec-head h2{font-family:var(--font-display);font-weight:500;font-size:1.5rem;letter-spacing:.04em;color:var(--text)}.fs-spec-head small{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}.fs-row{display:flex;align-items:baseline;gap:12px;padding:13px 0;border-bottom:1px dotted var(--border)}.fs-name{font-size:15px;color:var(--text);white-space:nowrap}.fs-name em{font-style:normal;color:var(--brass);font-size:13px;display:block;margin-top:1px}.fs-name a{color:inherit;border-bottom:1px solid transparent;transition:border-color .15s,color .15s}.fs-name a:hover{color:var(--accent-hover);border-color:var(--accent-hover)}.fs-leader{flex:1;border-bottom:1px dotted var(--border);transform:translateY(-5px);min-width:1.5rem}.fs-amt{font-family:var(--font-mono);font-size:15px;color:var(--accent);white-space:nowrap}.fs-row.side .fs-name,.fs-row.rinse .fs-name{color:var(--text-muted)}.fs-row.side .fs-amt,.fs-row.rinse .fs-amt{color:var(--brass)}@media(max-width:420px){.fs-name{white-space:normal}.fs-leader{display:none}.fs-row{flex-wrap:wrap}}.fs-pour{margin:22px 0 30px}.fs-pour-label{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);margin-bottom:8px}.fs-pour-bar{display:flex;height:18px;border:1px solid var(--border);border-radius:2px;overflow:hidden}.fs-pour-bar i{display:block;height:100%}.fs-pour-key{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;font-size:12px;color:var(--text-muted)}.fs-pour-key b{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;transform:translateY(1px);flex-shrink:0}.fs-service{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);margin-bottom:24px}.fs-cell{padding:16px 18px;border-bottom:1px solid var(--border)}.fs-cell:nth-child(odd){border-right:1px solid var(--border)}.fs-cell:nth-last-child(-n+2){border-bottom:none}.fs-cell small{display:block;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);margin-bottom:5px}.fs-cell-value{font-size:15px;color:var(--text)}.fs-note{border-left:2px solid var(--accent);background:var(--surface);padding:14px 18px;font-size:14.5px;color:var(--text-muted);margin-bottom:14px;line-height:1.5}.fs-note b{color:var(--text);font-weight:500}.fs-note.variant{border-left-color:var(--oxblood)}.fs-note.substitution{border-left-color:#8f6ae6}.fs-note .vname{color:var(--accent);letter-spacing:.06em}.ingredient-hero{padding:2.5rem 0 1.5rem}.ingredient-hero h1{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:500;color:var(--accent)}.ingredient-hero p{margin-top:.5rem;color:var(--text-muted);font-size:.85rem;letter-spacing:.05em}.site-footer{border-top:1px solid var(--border);padding:2rem 0;margin-top:3rem}.site-footer .container{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.footer-brand{display:flex;flex-direction:column;gap:.25rem}.footer-logo{font-family:var(--font-display);font-size:1rem;font-weight:500;color:var(--accent);letter-spacing:.1em}.footer-tagline{font-size:.7rem;letter-spacing:.08em;color:var(--text-muted)}.footer-end{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}.footer-cta{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid transparent;transition:border-color .15s}.footer-cta:hover{border-color:var(--accent-hover)}.footer-copy{font-size:.65rem;letter-spacing:.06em;color:var(--text-muted)}.back-to-top{position:fixed;bottom:1.75rem;right:1.75rem;width:2.4rem;height:2.4rem;border-radius:50%;background:var(--accent);color:#0e0e11;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;pointer-events:none;z-index:50}.back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top:hover{background:var(--accent-hover)}.hero-actions{margin-top:1.25rem;display:flex;justify-content:center}.surprise-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1.4rem;border-radius:999px;border:1px solid var(--accent);background:transparent;color:var(--accent);font-family:var(--font-body);font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .15s,color .15s}.surprise-btn:hover{background:var(--accent-hover);color:#0e0e11}.volumes-banner{border-top:1px solid var(--accent);border-bottom:1px solid var(--accent);background:var(--surface);padding:1.5rem 0;margin:1.75rem 0 0}.volumes-headline{text-align:center;font-family:var(--font-display);font-size:1.05rem;font-weight:500;color:var(--text);letter-spacing:.06em;margin-bottom:1rem}.volumes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;max-width:640px;margin:0 auto;padding:0 1.25rem}.volume-card{display:block;text-align:center;padding:.65rem .5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);transition:border-color .15s,color .15s}.volume-card:hover{border-color:var(--accent-hover);color:var(--accent-hover)}@media(max-width:480px){.volumes-grid{grid-template-columns:repeat(2,1fr)}}.no-results{grid-column:1 / -1;text-align:center;padding:4rem 1rem;color:var(--text-muted)}.no-results h3{font-family:var(--font-display);font-size:1.5rem;font-weight:500;margin-bottom:.5rem;color:var(--text)}.view-controls{display:flex;align-items:center;margin:1.25rem 0 .25rem}.control-group{display:flex;align-items:center;gap:.55rem}.control-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted)}.sq-toggle{display:flex;gap:.3rem}.sq-btn{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--text-muted);font-size:.6rem;font-family:var(--font-body);font-weight:400;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;transition:border-color .15s,color .15s}.sq-btn:hover{border-color:var(--accent-hover);color:var(--text)}.sq-btn.active{border-color:var(--accent);color:var(--accent);font-weight:600;background:#e6b73d17}.glossary-hero{padding:3rem 0 2rem;text-align:center}.glossary-hero h1{font-family:var(--font-display);font-size:clamp(2rem,6vw,3.5rem);font-weight:500;letter-spacing:.08em;color:var(--accent);line-height:1.1}.glossary-sub{margin-top:.5rem;color:var(--text-muted);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase}.glossary-section{max-width:760px;margin:0 auto;padding-bottom:4rem}.glossary-section-title{font-family:var(--font-display);font-size:1.4rem;font-weight:500;color:var(--text);letter-spacing:.04em;border-bottom:1px solid var(--border);padding-bottom:.6rem;margin-bottom:0}.glossary-list{display:flex;flex-direction:column}.glossary-entry{border-left:3px solid transparent;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);transition:border-left-color .2s,background .2s}.glossary-entry:hover{border-left-color:var(--accent-hover);background:var(--surface)}.glossary-term{font-weight:500;font-size:.95rem;color:var(--text);letter-spacing:.03em;margin-bottom:.35rem}.glossary-body{margin:0}.glossary-def{font-size:.88rem;color:var(--text-muted);line-height:1.55}.glossary-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.glossary-tag{display:inline-block;padding:.15rem .55rem;border-radius:999px;border:1px solid var(--border);font-size:.63rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.glossary-used{margin-top:.55rem;font-size:.78rem;color:var(--brass);letter-spacing:.03em}.method-link{border-bottom:1px solid transparent;transition:border-color .15s,color .15s}.method-link:hover{color:var(--accent-hover);border-color:var(--accent-hover)}.taste-group-header{grid-column:1 / -1;font-family:var(--font-display);font-size:1.15rem;font-weight:500;color:var(--accent);letter-spacing:.04em;padding:1.5rem 0 .4rem;border-bottom:1px solid var(--border);margin-bottom:.25rem}.cocktail-description{font-size:.93rem;color:var(--text-muted);font-style:italic;margin:.25rem 0 0;letter-spacing:.01em}.spec-steps-list,.fs-steps-list{margin:.4rem 0 0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.35rem}.spec-steps-list li,.fs-steps-list li{font-size:.85rem;line-height:1.55;color:var(--text)}.fs-method-steps{margin-top:1rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:6px}.fs-method-steps-label{font-size:.63rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}:root{--sour-border: #9b59b6;--sour-fill: #f5eeff;--bitter-border: #e74c6e;--bitter-fill: #fff0f3;--smooth-border: #e67e22;--smooth-fill: #fff5ee;--sharp-border: #d4ac0d;--sharp-fill: #fffce8;--sweet-border: #2e86de;--sweet-fill: #eef6ff;--delight-border: #27ae74;--delight-fill: #edfff6}.taste-tag{display:inline-flex;align-items:center;position:relative;padding:3px 10px 3px 14px;font-size:.65rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#1a1a1a;clip-path:polygon(8px 0%,100% 0%,100% 100%,8px 100%,0% 50%);white-space:nowrap;line-height:1.3}.taste-tag:before{content:"";position:absolute;left:6px;top:50%;transform:translateY(-50%);width:4px;height:4px;border-radius:50%}.tag-sour{background:var(--sour-fill);border:1.5px solid var(--sour-border)}.tag-sour:before{background:#c8a0e0}.tag-bitter{background:var(--bitter-fill);border:1.5px solid var(--bitter-border)}.tag-bitter:before{background:#e898b0}.tag-smooth{background:var(--smooth-fill);border:1.5px solid var(--smooth-border)}.tag-smooth:before{background:#e8b888}.tag-sharp{background:var(--sharp-fill);border:1.5px solid var(--sharp-border)}.tag-sharp:before{background:#d0c870}.tag-sweet{background:var(--sweet-fill);border:1.5px solid var(--sweet-border)}.tag-sweet:before{background:#90b8e8}.tag-delight{background:var(--delight-fill);border:1.5px solid var(--delight-border)}.tag-delight:before{background:#7fd0a8}.taste-filter-btn{cursor:pointer;transition:background .15s,color .15s;background:transparent;color:var(--text-muted)}.taste-filter-btn:before{opacity:.35}.taste-filter-btn.active{color:#1a1a1a}.taste-filter-btn.active:before{opacity:1}.taste-filter-btn.active.tag-sour{background:var(--sour-fill)}.taste-filter-btn.active.tag-bitter{background:var(--bitter-fill)}.taste-filter-btn.active.tag-smooth{background:var(--smooth-fill)}.taste-filter-btn.active.tag-sharp{background:var(--sharp-fill)}.taste-filter-btn.active.tag-sweet{background:var(--sweet-fill)}.taste-filter-btn.active.tag-delight{background:var(--delight-fill)}.taste-filter-row{margin-top:.5rem}.taste-row-label{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);align-self:center}.fs-taste-row{display:flex;align-items:center;gap:.75rem;padding:.65rem 0;border-bottom:1px solid var(--border);margin-top:.5rem}.fs-taste-label{font-size:.63rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);min-width:80px}
