.beer-recap{--blue:#0039A6;--navy:#0B1F4D;--pale:#DBE6FB;--muted:#536176;--rule:#dce2eb;--ink:#243248}
.beer-recap *{box-sizing:border-box}
.beer-recap{scroll-behavior:smooth;scroll-padding-top:30px}
.beer-recap{margin:0;color:var(--ink);font-family:Mulish,Arial,sans-serif;line-height:1.75;background:#fff}
.beer-recap a{color:var(--blue);text-underline-offset:4px}
.beer-recap button{font:inherit}
.beer-recap button,.beer-recap a{touch-action:manipulation}
.beer-recap a:focus-visible,.beer-recap button:focus-visible,.beer-recap summary:focus-visible{outline:3px solid #b37500;outline-offset:5px}
.beer-recap .wrap{max-width:1160px;margin:auto;padding:0 28px}
.beer-recap .breadcrumbs{font-size:12px;margin:26px 0 18px;color:var(--muted)}
.beer-recap .breadcrumbs a{text-decoration:none}
.beer-recap .story-head{max-width:1000px;padding:8px 0 30px}
.beer-recap .eyebrow{color:var(--blue);font-size:12px;letter-spacing:.14em;font-weight:900;text-transform:uppercase;margin:12px 0}
.beer-recap .story-head h1{font-size:clamp(2rem,4.1vw,3.3rem);line-height:1.15;letter-spacing:-.035em;font-weight:750;color:var(--navy);margin:16px 0 20px;max-width:29ch}
.beer-recap .deck{font-size:clamp(1.05rem,1.8vw,1.2rem);line-height:1.6;color:#41516a;max-width:800px}
.beer-recap .byline{font-size:12px;color:var(--muted);margin-top:20px}
.beer-recap .event-line{display:flex;gap:10px 22px;flex-wrap:wrap;font-size:13px;font-weight:800;color:var(--blue);margin-top:24px}
.beer-recap .cover{margin:0}
.beer-recap .cover img{display:block;width:100%;height:auto;border-radius:3px}
.beer-recap .cover figcaption,.beer-recap .story-figure figcaption,.beer-recap .photo-grid figcaption{font-size:12px;color:var(--muted);line-height:1.6;margin:9px 0 0}
.beer-recap .cover figcaption{display:flex;justify-content:space-between;gap:20px}
.beer-recap .quick-facts{display:grid;grid-template-columns:repeat(3,1fr);margin:34px 0 50px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:22px 0;gap:20px}
.beer-recap .quick-facts div+div{border-left:1px solid var(--rule);padding-left:32px}
.beer-recap .quick-facts strong{color:var(--blue);display:block;font-size:30px;font-weight:750;line-height:1.3}
.beer-recap .quick-facts span{font-size:13px;color:var(--muted)}
.beer-recap .story-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:58px;align-items:start}
.beer-recap .contents{position:sticky;top:20px;border-left:2px solid var(--pale);padding-left:18px;font-size:12px;line-height:1.5}
.beer-recap .contents p{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--blue);font-weight:900}
.beer-recap .contents a{display:block;text-decoration:none;color:var(--muted);margin:15px 0}
.beer-recap .contents a:hover{color:var(--blue)}
.beer-recap .story-body{min-width:0;max-width:820px}
.beer-recap .story-body section{margin:0 0 44px;scroll-margin-top:24px}
.beer-recap .story-body h2{font-size:27px;line-height:1.3;letter-spacing:-.02em;color:var(--blue);margin:0 0 20px;font-weight:750}
.beer-recap .story-body p{margin:0 0 17px;font-size:16px}
.beer-recap .story-body>section:first-child p:first-of-type{font-size:18px;color:var(--navy)}
.beer-recap .story-figure{margin:27px 0 0}
.beer-recap .story-figure img{display:block;width:100%;height:auto;border-radius:3px}
.beer-recap .photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}
.beer-recap .photo-pair .story-figure{margin:0}
.beer-recap .photo-pair img{aspect-ratio:4/3;object-fit:contain;background:#f1f4f8}
.beer-recap .partner-strip{display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin:30px 0 0;padding:20px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.beer-recap .partner-strip p{width:100%;font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin:0}
.beer-recap .partner-strip img{max-width:135px;max-height:58px;object-fit:contain;display:block}
.beer-recap .partner-strip .journal img{max-width:48px;max-height:62px}
.beer-recap .partner-strip a{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:10px;color:var(--navy);max-width:270px;line-height:1.45}
.beer-recap .partner-strip .journal span{max-width:126px}
.beer-recap .photo-gallery{border-top:1px solid var(--rule);padding-top:35px}
.beer-recap .photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 16px}
.beer-recap .photo-grid figure{margin:0;min-width:0}
.beer-recap .photo-grid button{display:block;padding:0;border:0;cursor:zoom-in;position:relative;width:100%;background:#edf2f8;border-radius:3px;overflow:hidden}
.beer-recap .photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .25s}
.beer-recap .photo-grid button:hover img{transform:scale(1.025)}
.beer-recap .photo-grid .zoom{position:absolute;right:8px;bottom:8px;width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--blue);font-size:19px;line-height:1}
.beer-recap .gallery-more{margin:24px 0}
.beer-recap .gallery-more summary{cursor:pointer;color:var(--blue);font-weight:800;font-size:14px;padding:11px 0}
.beer-recap .gallery-more[open] summary{margin-bottom:18px}
.beer-recap .gallery-help{font-size:13px!important;color:var(--muted)}
.beer-recap .organizers{border-top:1px solid var(--rule);padding-top:32px}
.beer-recap .organizer-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}
.beer-recap .organizer-grid p{font-size:14px;margin:0}
.beer-recap .organizer-grid strong{display:block;color:var(--navy)}
.beer-recap .organizer-grid span{display:block;font-size:12px;color:var(--muted)}
.beer-recap .materials{background:#f0f5fc;padding:30px;border-radius:4px}
.beer-recap .materials .actions{display:flex;flex-wrap:wrap;gap:12px}
.beer-recap .button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--blue);background:var(--blue);color:white;text-decoration:none;line-height:1.5;padding:11px 17px;border-radius:3px;font-size:13px;font-weight:800}
.beer-recap .button.secondary{background:transparent;color:var(--blue)}
.beer-recap .back{font-size:13px;margin:30px 0 60px}
.beer-recap .program-list{border:1px solid var(--rule);padding:16px 20px;margin-top:20px;border-radius:3px}
.beer-recap .program-list summary{font-weight:800;color:var(--blue);cursor:pointer;font-size:14px}
.beer-recap .program-list h3{font-size:15px;color:var(--blue);margin-top:25px}
.beer-recap .program-list li{font-size:13px;line-height:1.6;margin:12px 0}
.beer-recap .program-list small{display:block;color:var(--muted);font-size:12px}
.beer-recap dialog{padding:0;border:0;max-width:calc(100vw - 40px);max-height:calc(100vh - 30px);width:1160px;border-radius:6px;background:var(--navy);color:white}
.beer-recap dialog::backdrop{background:rgba(4,12,28,.88)}
.beer-recap .viewer-bar{display:flex;align-items:center;justify-content:space-between;padding:9px 15px;gap:15px;font-size:12px}
.beer-recap .viewer-bar button,.beer-recap .viewer-actions button{color:white;background:transparent;border:1px solid #8195ba;border-radius:4px;padding:7px 13px;cursor:pointer;font-size:13px}
.beer-recap .viewer-image{display:block;width:100%;height:min(68vh,740px);object-fit:contain;background:#061225}
.beer-recap .viewer-caption{font-size:13px;line-height:1.5;margin:0;padding:15px 20px}
.beer-recap .viewer-actions{display:flex;justify-content:center;gap:20px;padding:0 20px 17px}
.beer-recap .photo-grid .photo-trigger{display:block;cursor:zoom-in;position:relative;width:100%;background:#edf2f8;border-radius:3px;overflow:hidden}
.beer-recap .photo-grid .photo-trigger:hover img{transform:scale(1.025)}
.beer-recap .story-head h1{font-size:clamp(2rem,3.4vw,2.85rem);max-width:none}
@media(max-width:1000px){.beer-recap .story-layout{gap:28px;grid-template-columns:160px minmax(0,1fr)}
}
@media(max-width:680px){.beer-recap .wrap{padding-left:20px;padding-right:20px}
.beer-recap .story-head{padding-bottom:25px}
.beer-recap .breadcrumbs{font-size:11px;margin-top:22px}
.beer-recap .story-head h1{font-size:33px;line-height:1.16;margin-top:13px}
.beer-recap .eyebrow{font-size:10px}
.beer-recap .deck{font-size:16px}
.beer-recap .event-line{font-size:11px;gap:3px 12px}
.beer-recap .cover figcaption{display:block;font-size:11px}
.beer-recap .cover figcaption span{display:block}
.beer-recap .quick-facts{gap:10px;margin:27px 0 34px;padding:20px 0}
.beer-recap .quick-facts div+div{padding-left:14px}
.beer-recap .quick-facts strong{font-size:24px}
.beer-recap .quick-facts span{font-size:11px;line-height:1.45;display:block}
.beer-recap .story-layout{display:block}
.beer-recap .contents{position:static;margin-bottom:35px;padding-left:14px}
.beer-recap .contents a{display:inline-block;margin:3px 14px 3px 0;font-size:11px}
.beer-recap .contents p{margin-bottom:6px}
.beer-recap .story-body h2{font-size:25px}
.beer-recap .story-body p{font-size:15px}
.beer-recap .story-body>section:first-child p:first-of-type{font-size:16px}
.beer-recap .story-body section{margin-bottom:35px}
.beer-recap .photo-pair{grid-template-columns:1fr;gap:22px}
.beer-recap .photo-pair img{aspect-ratio:auto}
.beer-recap .photo-grid{grid-template-columns:1fr 1fr;gap:20px 12px}
.beer-recap .photo-grid figcaption{font-size:10px}
.beer-recap .partner-strip{gap:18px}
.beer-recap .partner-strip img{max-width:105px}
.beer-recap .organizer-grid{grid-template-columns:1fr}
.beer-recap .materials{padding:23px}
.beer-recap .materials .button{width:100%}
.beer-recap .viewer-image{height:54vh}
.beer-recap dialog{max-width:calc(100vw - 16px)}
.beer-recap .viewer-bar{font-size:10px}
.beer-recap .viewer-caption{font-size:12px}
.beer-recap .viewer-actions button{font-size:12px}
.beer-recap .program-list{padding:14px}
}
@media(prefers-reduced-motion:reduce){.beer-recap{scroll-behavior:auto}
.beer-recap .photo-grid img{transition:none}
}
@media print{.beer-recap .contents,.beer-recap .photo-gallery,.beer-recap dialog,.beer-recap .back{display:none!important}
.beer-recap .story-layout{display:block}
.beer-recap .story-body{max-width:none}
.beer-recap .wrap{max-width:none;padding:0}
.beer-recap .cover{max-width:70%;margin:auto}
.beer-recap a{color:inherit}
.beer-recap .story-head h1{font-size:30px}
.beer-recap .story-body section{break-inside:avoid}
.beer-recap .photo-pair img{max-height:200px;object-fit:contain}
.beer-recap .materials{background:white}
}

.beer-recap .partners{margin:30px 0;padding:20px 0;border-top:1px solid #dce2eb;border-bottom:1px solid #dce2eb}.beer-recap .partners ul{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:0;margin:0;list-style:none}.beer-recap .partners img{max-height:58px;max-width:135px;object-fit:contain}.beer-recap .partners li a{display:flex;gap:12px;align-items:center;text-decoration:none;font-size:11px;line-height:1.5}.beer-recap .partners li span{max-width:145px}.beer-recap .partners .lab{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.beer-recap .materials .button{color:white}.beer-recap .materials .button.secondary{color:#0039A6}.beer-recap .cover img{object-fit:contain}.beer-recap .photo-trigger img{max-width:100%}
