:root{--amber-50:#fffbeb;--amber-100:#fef3c7;--amber-200:#fde68a;--amber-300:#fcd34d;--amber-400:#fbbf24;--amber-500:#f59e0b;--amber-700:#b45309;--amber-800:#92400e;--amber-900:#78350f;--stone-50:#fafaf9;--stone-100:#f5f5f4;--stone-200:#e7e5e4;--stone-300:#d6d3d1;--stone-400:#a8a29e;--stone-500:#78716c;--stone-600:#57534e;--stone-700:#44403c;--stone-800:#292524;--stone-900:#1c1917;--green-50:#ecfdf5;--green-100:#d1fae5;--green-900:#064e3b;--page-bg:#fff7e8}*{box-sizing:border-box}html{background:var(--page-bg);min-height:100%;color:var(--stone-900);-webkit-text-size-adjust:100%;font-family:Arial,Helvetica,sans-serif}body{background:var(--page-bg);min-height:100%;color:var(--stone-900);margin:0}button,select,input,a{font:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed}.app-shell{background:linear-gradient(180deg, #fef3c799, #fff7e800 360px), var(--page-bg);min-height:100vh;color:var(--stone-900)}.site-header{background:var(--stone-900);color:var(--amber-50);border-bottom:1px solid #fcd34d8c}.page-inner,.header-inner{width:100%;max-width:1280px;margin:0 auto}.header-inner{padding:28px 16px}.eyebrow{color:var(--amber-300);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.875rem;font-weight:800}.header-grid{gap:20px;margin-top:12px;display:grid}.hero-copy h1{max-width:900px;color:var(--amber-50);margin:0;font-size:clamp(2rem,8vw,3.75rem);font-weight:900;line-height:1.02}.hero-copy p{color:#fef3c7db;max-width:680px;margin:14px 0 0;font-size:1rem;line-height:1.7}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.stat-card{text-align:center;background:#fffbeb1a;border:1px solid #fcd34d40;border-radius:8px;padding:12px 16px}.stat-number{color:var(--amber-50);margin:0;font-size:1.5rem;font-weight:900}.stat-label{color:var(--amber-200);letter-spacing:.08em;text-transform:uppercase;margin:4px 0 0;font-size:.75rem;font-weight:800}.page-inner{padding:20px 0 32px}.login-shell{background:linear-gradient(180deg, #fef3c7b8, #fff7e800 360px), var(--page-bg);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.login-panel{background:#fff;border:1px solid #fcd34d8c;border-radius:8px;width:min(100%,440px);padding:24px;box-shadow:0 18px 40px #1c191729}.login-panel .eyebrow{color:var(--amber-800)}.login-panel h1{color:var(--stone-900);margin:12px 0 0;font-size:2rem;font-weight:900;line-height:1.1}.login-copy{color:var(--stone-600);margin:10px 0 0;font-size:.95rem;line-height:1.6}.login-disclaimer{border:1px solid var(--amber-200);background:var(--amber-50);color:var(--stone-700);border-radius:8px;margin:14px 0 0;padding:12px 14px;font-size:.92rem;line-height:1.6}.login-form{gap:14px;margin-top:22px;display:grid}.login-button{border:1px solid var(--stone-900);background:var(--stone-900);min-height:48px;color:var(--amber-50);border-radius:6px;padding:0 18px;font-size:.95rem;font-weight:900;transition:background .16s,opacity .16s}.login-button:hover:not(:disabled){background:#451a03}.login-button:disabled{opacity:.6}.form-error{color:#991b1b;margin:0;font-size:.88rem;font-weight:800}.session-strip{color:var(--stone-700);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:0 16px 16px;font-size:.85rem;font-weight:800;display:flex}.session-strip span{border:1px solid var(--amber-300);background:var(--amber-50);border-radius:999px;padding:6px 12px}.map-section{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.section-heading-row{justify-content:space-between;align-items:flex-end;gap:16px;padding:0 16px;display:flex}.section-title{color:var(--stone-900);margin:0;font-size:1.35rem;font-weight:800;line-height:1.2}.section-help,.chip-label{color:var(--stone-600);margin:4px 0 0;font-size:.92rem;line-height:1.5}.point-count{border:1px solid var(--amber-300);background:var(--amber-100);color:var(--amber-900);letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:5px 12px;font-size:.75rem;font-weight:800;display:none}.map-frame{border:1px solid var(--stone-200);background:var(--stone-900);border-radius:8px;min-width:0;margin:0 16px;padding:8px;position:relative;box-shadow:0 12px 26px #1c191729}.map-nav{z-index:25;color:#fffbebeb;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1c191761;border:1px solid #fffbeb4d;border-radius:12px;place-items:center;width:42px;height:60px;font-size:1.9rem;line-height:1;transition:background .16s;display:grid;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 4px 12px #00000040}.map-nav:active{background:#1c19179e}.map-nav-left{left:-14px}.map-nav-right{right:-14px}@media (min-width:1024px){.map-nav{display:none}}.map-scroll{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding-bottom:12px;overflow:auto hidden}.map-canvas{background:var(--stone-900);vertical-align:top;border-radius:6px;width:auto;max-width:none;height:clamp(300px,58vh,560px);display:inline-block;position:relative;overflow:hidden}.map-image{-webkit-user-select:none;user-select:none;image-orientation:none;width:auto;max-width:none;height:100%;display:block}.map-hotspot{z-index:10;cursor:pointer;background:#fbbf2429;border:1px solid #fde68a99;border-radius:3px;transition:background .16s,border-color .16s,box-shadow .16s;position:absolute;box-shadow:inset 0 0 0 1px #451a031a}.map-hotspot:hover{border-color:var(--amber-300);background:#fcd34d99}.map-hotspot:focus-visible,.chip:focus-visible,.clear-button:focus-visible,.brewery-button:focus-visible,.expand-button:focus-visible,.link-button:focus-visible,.star-button:focus-visible,.tasted-button:focus-visible,.login-button:focus-visible{outline:3px solid var(--amber-500);outline-offset:2px}.control:focus{outline:3px solid var(--amber-200);outline-offset:0}.map-hotspot.is-highlighted{z-index:16;background:#facc15eb;border:2px solid #fde047;box-shadow:0 0 0 3px #fde047b3,0 0 14px 3px #facc15e6}.map-hotspot.is-selected{z-index:20;background:var(--amber-300);color:var(--stone-900);box-shadow:0 0 0 4px var(--amber-100), 0 8px 20px #1c191747;border-color:#451a03}.hotspot-label{display:none}.chip-area{padding:0 16px}.chip-row{-webkit-overflow-scrolling:touch;gap:8px;padding-bottom:8px;display:flex;overflow-x:auto}.chip{border:1px solid var(--amber-300);background:var(--amber-50);min-height:44px;color:var(--stone-800);border-radius:999px;flex:none;padding:8px 16px;font-size:.92rem;font-weight:800;transition:border-color .16s,background .16s,color .16s}.chip:hover{border-color:var(--amber-500);background:var(--amber-100)}.chip.is-highlighted{color:#713f12;background:#facc1547;border-color:#facc15;box-shadow:0 0 0 2px #facc158c}.chip.is-selected{border-color:var(--stone-900);background:var(--stone-900);color:var(--amber-100)}.results-anchor{margin-top:22px}.filter-bar{z-index:30;border-top:1px solid var(--stone-200);border-bottom:1px solid var(--stone-200);background:#fdf6ec;padding:16px;position:sticky;top:0;box-shadow:0 2px 8px #1c19171f}.filter-grid{gap:12px;max-width:1280px;margin:0 auto;display:grid}.field{color:var(--stone-800);gap:6px;font-size:.9rem;font-weight:800;display:grid}.control{border:1px solid var(--stone-300);width:100%;min-height:48px;color:var(--stone-900);background:#fff;border-radius:6px;padding:0 12px;font-size:1rem;font-weight:400;transition:border-color .16s,box-shadow .16s;box-shadow:inset 0 1px 2px #1c19170f}.control:focus{border-color:var(--amber-700);box-shadow:0 0 0 3px var(--amber-200)}.control::placeholder{color:var(--stone-400)}.filter-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.result-count{color:var(--stone-700);margin:0;font-size:.92rem;font-weight:800}.clear-button{border:1px solid var(--stone-300);min-height:48px;color:var(--stone-900);background:#fff;border-radius:6px;padding:0 16px;font-size:.92rem;font-weight:900;transition:border-color .16s,background .16s,opacity .16s}.clear-button:hover:not(:disabled){border-color:var(--amber-500);background:var(--amber-50)}.clear-button:disabled{opacity:.45}.beer-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:16px;padding:24px 16px;display:grid}.beer-card{border:1px solid var(--stone-200);background:#fff;border-radius:8px;gap:16px;min-height:100%;padding:16px;display:grid;box-shadow:0 8px 18px #1c191714}.card-top{align-items:flex-start;gap:12px;display:flex}.logo-box{border:1px solid var(--stone-200);background:var(--stone-100);border-radius:6px;flex:0 0 64px;place-items:center;width:64px;height:64px;display:grid;overflow:hidden}.logo-image{object-fit:cover;width:100%;height:100%}.logo-fallback{color:var(--stone-500);text-align:center;padding:0 8px;font-size:.75rem;font-weight:800}.card-main{flex:auto;min-width:0}.title-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.beer-title{color:var(--stone-900);margin:0;font-size:1.15rem;font-weight:900;line-height:1.2}.ranking{background:var(--green-900);color:var(--green-50);border-radius:999px;flex:none;padding:5px 10px;font-size:.75rem;font-weight:900}.brewery-button,.expand-button{color:var(--amber-800);text-align:left;text-underline-offset:4px;background:0 0;border:0;padding:0;font-size:.92rem;font-weight:800;text-decoration-thickness:2px}.brewery-button{margin-top:4px}.brewery-button:hover,.expand-button:hover{color:#451a03;text-decoration-line:underline}.card-body{gap:12px;display:grid}.beer-style{color:var(--stone-700);margin:0;font-size:.92rem;font-weight:800}.badge-row{flex-wrap:wrap;gap:8px;display:flex}.badge{border-radius:999px;padding:5px 12px;font-size:.75rem;font-weight:900}.badge-amber{background:var(--amber-100);color:var(--amber-900)}.badge-dark{background:var(--stone-900);color:var(--amber-50)}.badge-green{background:var(--green-100);color:var(--green-900)}.card-actions{gap:10px;display:grid}.rating-control{align-items:center;gap:2px;display:inline-flex}.star-button{width:34px;height:34px;color:var(--stone-300);background:0 0;border:0;border-radius:6px;place-items:center;padding:0;font-size:1.4rem;line-height:1;transition:background .16s,color .16s;display:grid}.star-button:hover,.star-button.is-selected{background:var(--amber-100);color:var(--amber-700)}.tasted-button{border:1px solid var(--stone-300);min-height:42px;color:var(--stone-900);background:#fff;border-radius:6px;justify-self:start;padding:0 14px;font-size:.9rem;font-weight:900;transition:border-color .16s,background .16s,color .16s}.tasted-button:hover,.tasted-button.is-selected{border-color:var(--amber-500);background:var(--amber-100);color:var(--amber-900)}.description-block{gap:8px;display:grid}.beer-description{white-space:pre-line;color:var(--stone-600);margin:0;font-size:.92rem;line-height:1.6}.description-collapsed{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.link-button{border:1px solid var(--stone-300);color:var(--stone-900);text-align:center;border-radius:6px;align-self:end;padding:9px 12px;font-size:.92rem;font-weight:900;text-decoration:none;transition:border-color .16s,background .16s}.link-button:hover{border-color:var(--amber-500);background:var(--amber-50)}.empty-state{text-align:center;max-width:720px;margin:0 auto;padding:56px 16px}.empty-state h2{color:var(--stone-900);margin:0;font-size:1.5rem;font-weight:900}.empty-state p{color:var(--stone-600);margin:12px 0 0}@media (min-width:640px){.header-inner,.section-heading-row,.chip-area,.session-strip,.filter-bar,.beer-grid{padding-left:24px;padding-right:24px}.map-frame{margin-left:24px;margin-right:24px}.point-count{display:inline-flex}.beer-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}}@media (min-width:1024px){.header-inner,.section-heading-row,.chip-area,.session-strip,.filter-bar,.beer-grid{padding-left:32px;padding-right:32px}.header-grid{grid-template-columns:minmax(0,1fr) auto;align-items:end}.stats{display:flex}.map-frame{margin-left:32px;margin-right:32px}.filter-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:end}.filter-actions{display:block}.result-count{margin-bottom:8px}}@media (orientation:portrait) and (max-width:768px){.map-canvas{height:clamp(340px,64vh,600px)}}@media (orientation:landscape) and (max-height:600px){.map-frame{border-left:0;border-right:0;border-radius:0;margin:0;padding:4px}.map-scroll{padding-bottom:4px}.map-canvas{height:calc(100dvh - 8px);max-height:none}.map-section .section-heading-row{display:none}.header-inner{padding:8px 16px}.hero-copy h1{font-size:1.3rem}.hero-copy p{display:none}.stat-card{padding:6px 12px}}@media (max-width:1023px){.filter-bar{position:static}}
