@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--ink:#312621;--paper:#faf8f4;--muted:#766e66;--line:#e2dcd3;--accent:#ae4a26;--cream:#eee4d4}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,select{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #be683b;outline-offset:4px}header{padding:24px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;font-weight:700;font-size:19px}.brand-mark{background:var(--ink);color:#f5dec1;font:italic 37px Georgia,serif;display:grid;place-items:center;width:49px;height:49px;border-radius:50%}.brand small{display:block;font-size:10px;letter-spacing:2px;font-weight:500;margin-top:2px}.source-nav{font-size:14px}.source-nav span{margin-left:18px}main{max-width:1440px;margin:auto;padding:0 5%}.intro{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;padding:43px 0 39px;align-items:center}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:var(--accent);margin:0 0 15px}h1{font:500 clamp(38px,4.3vw,63px)/1.1 'Playfair Display',Georgia,serif;letter-spacing:-1.5px;margin:0}h1 em{color:var(--accent);font-weight:500}.intro-copy{max-width:440px;color:var(--muted);margin:20px 0}.stats{display:flex;gap:27px;font-size:13px;color:var(--muted)}.stats b{font-size:18px;color:var(--ink);margin-right:4px;font-weight:600}figure{margin:0;position:relative;overflow:hidden;background:var(--ink);height:282px;border-radius:3px 70px 3px 3px}figure img{width:100%;height:100%;object-fit:cover;display:block}figcaption{position:absolute;bottom:0;left:0;width:100%;padding:36px 22px 17px;color:#fff;background:linear-gradient(transparent,#211710d9);font:italic 18px Georgia,serif}.directory{border-top:1px solid var(--line);padding-top:25px}.directory-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}h2{font:500 26px 'Playfair Display',Georgia,serif;margin:0}.directory-head h2 span{font:11px 'DM Sans',sans-serif;letter-spacing:2px;color:var(--muted);margin-left:12px}.edition{font-size:13px;color:var(--muted)}.toolbar{display:flex;gap:12px}.search{flex:1;display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:#fff;padding:0 16px;border-radius:5px;min-width:160px}.search>span{font-size:29px;line-height:1}.search input{border:0;background:none;width:100%;padding:15px 0;outline:none!important;color:var(--ink)}.search:focus-within{outline:2px solid var(--accent)}kbd{font:12px monospace;border:1px solid var(--line);border-radius:3px;padding:1px 6px;color:var(--muted)}.select-label select{height:55px;min-width:175px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:5px;padding:0 34px 0 16px;font-size:14px}.category-row{display:flex;justify-content:space-between;gap:12px;margin-top:21px;border-bottom:1px solid var(--line)}.categories{display:flex;gap:22px}.categories button{border:0;border-bottom:2px solid transparent;background:none;padding:0 0 15px;color:var(--muted);font-size:14px;white-space:nowrap}.categories button.active{color:var(--accent);border-color:var(--accent);font-weight:700}.categories span{font-size:11px;background:#eeeae3;padding:2px 6px;border-radius:4px;margin-left:4px}.sort{color:var(--muted);font-size:13px;white-space:nowrap}.sort select{border:0;background:transparent;color:var(--ink);padding-left:8px}.result-bar{display:flex;justify-content:space-between;align-items:center;height:58px;font-size:13px;color:var(--muted)}.result-bar button{background:none;border:0;color:var(--accent);font-size:13px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:23px;display:flex;flex-direction:column;min-height:232px;transition:border-color .18s,box-shadow .18s}.card:hover{border-color:#bda38b;box-shadow:0 5px 18px #31262109}.card-head{display:flex;gap:13px;align-items:flex-start}.monogram{flex:none;width:46px;height:46px;background:#eee7db;border-radius:50%;display:grid;place-items:center;font:500 21px Georgia,serif;color:#664731}.card:nth-child(4n+2) .monogram{background:#e5e9e1;color:#485840}.card:nth-child(4n+3) .monogram{background:#f1e2d9;color:#92492d}.card h3{font:500 21px/1.25 'Playfair Display',Georgia,serif;margin:0 0 6px;overflow-wrap:anywhere}.location{font-size:13px;color:var(--muted);margin:0}.tags{display:flex;gap:6px;flex-wrap:wrap;margin:20px 0}.tag{font-size:11px;letter-spacing:.2px;background:#f5f2ed;padding:4px 8px;border-radius:3px;color:#665c50}.tag.category{background:#eee6db;color:#6f4a31}.card-bottom{margin-top:auto;display:flex;gap:17px;align-items:center;border-top:1px solid #eee9e2;padding-top:14px;font-size:13px}.visit{color:var(--accent);font-weight:600}.instagram{color:var(--muted)}.provenance{margin-left:auto;color:#948b80;font-size:11px}.provenance a{text-decoration:underline;text-underline-offset:3px}.sources{margin-top:52px;padding:35px 0;display:grid;grid-template-columns:1fr 1fr;gap:70px;border-top:1px solid var(--line)}.sources h2{font-size:25px}.sources p:not(.eyebrow){font-size:14px;color:var(--muted);max-width:520px}.sources .snapshot{font-size:12px!important}.source-links a{display:block;border-bottom:1px solid var(--line);padding:16px 0;font-size:14px}.source-links small{display:block;font-size:10px;letter-spacing:1.7px;color:var(--muted);margin-bottom:6px}.source-links span{float:right}footer{border-top:1px solid var(--line);padding:24px 5%;display:flex;gap:20px;justify-content:space-between;font-size:12px}.footer-note{display:block;color:var(--muted);margin-top:4px}footer>a{color:var(--muted)}#empty{text-align:center;padding:55px 20px}#empty h3{font:28px Georgia}#empty p{color:var(--muted)}#empty button{border:0;background:var(--ink);color:#fff;border-radius:4px;padding:12px 20px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}@media(min-width:1500px){header,footer{padding-left:calc((100vw - 1296px)/2);padding-right:calc((100vw - 1296px)/2)}}@media(max-width:950px){.intro{gap:28px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.categories{gap:13px}.categories button{font-size:13px}.sources{gap:30px}.select-label select{min-width:140px;max-width:180px}}@media(max-width:650px){header{padding:17px 5%}.brand{font-size:16px}.brand small{font-size:8px;letter-spacing:1.3px}.brand-mark{width:39px;height:39px;font-size:30px}.source-nav{font-size:12px}.source-nav span{margin-left:0}.intro{grid-template-columns:1fr;padding:28px 0;gap:24px}h1{font-size:42px}.intro-copy{font-size:15px;margin:15px 0}.intro figure{height:165px;border-radius:3px 40px 3px 3px}.intro img{object-position:center 48%}.eyebrow{font-size:10px}.stats{gap:20px}.edition{display:none}.toolbar{flex-wrap:wrap;gap:9px}.search{flex-basis:100%}.select-label{flex:1;min-width:0}.select-label select{width:100%;max-width:none;min-width:0;font-size:13px}.category-row{display:block}.categories{overflow:auto;gap:17px}.categories button{padding-bottom:13px}.sort{display:block;text-align:right;padding:12px 0}.grid{grid-template-columns:1fr}.card{min-height:218px}.sources{grid-template-columns:1fr;gap:15px}footer{flex-direction:column}.directory-head h2{font-size:24px}.directory-head h2 span{font-size:10px}.source-nav{max-width:86px;text-align:right}}

/* Larger brand images with compact card content. */
.card{padding:16px;min-height:0;gap:0}
.card-head{display:flex;flex-direction:column;align-items:stretch;gap:14px}
.monogram{width:100%;height:164px;position:relative;overflow:hidden;border-radius:5px;font-size:48px;flex:none}
.monogram.has-thumbnail{background:#fff;border:0}
.roaster-thumbnail{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.card h3{font-size:21px;margin-bottom:4px}
.card .tags{margin:12px 0}
.card-bottom{padding-top:12px;gap:12px}
@media(max-width:650px){.monogram{height:180px}.card{padding:16px}.card-head{gap:12px}}
