:root{--fg:#1a1a1a;--fg-secondary:#6b6b6b;--fg-muted:#999;--bg:#fff;--bg-subtle:#f5f5f5;--border:#e0e0e0;--accent:#000;--tag-green:#2d8a4e;--tag-yellow:#9a7b2d;--tag-red:#c44d4d;--tag-blue:#3a7bc8;--tag-peach:#c47a2d;--tag-teal:#2a8a7a;--tag-lavender:#7a6bc4;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:40px;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--text-base:.875rem;--text-sm:.8125rem;--text-xs:.75rem;--text-lg:1rem;--line-height:1.5;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.15s;--duration-normal:.2s;--duration-slow:.3s}[data-theme=dark]{--fg:#e8e8e8;--fg-secondary:#8b8b8b;--fg-muted:#555;--bg:#111;--bg-subtle:#1a1a1a;--border:#2a2a2a;--accent:#fff;--tag-green:#5cb87a;--tag-yellow:#c4a84d;--tag-red:#e07070;--tag-blue:#6a9fd8;--tag-peach:#d4a060;--tag-teal:#5cb8a8;--tag-lavender:#a090d8}.theme-transition,.theme-transition *,.theme-transition :before,.theme-transition :after{transition:color var(--duration-slow) var(--ease-out), background-color var(--duration-slow) var(--ease-out), border-color var(--duration-slow) var(--ease-out), box-shadow var(--duration-slow) var(--ease-out)!important}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font);font-size:16px;line-height:var(--line-height);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100dvh;padding-top:48px}a{color:var(--fg);text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}ul,ol{list-style:none}kbd{font-size:var(--text-xs);font-family:var(--font);background:var(--bg-subtle);border:1px solid var(--border);text-align:center;border-radius:4px;min-width:20px;padding:2px 6px;display:inline-block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.header{z-index:100;height:48px;padding:0 var(--space-md);background:var(--bg);transition:border-color var(--duration-normal) ease;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.header.scrolled{border-bottom-color:var(--border)}.header-brand{align-items:center;gap:var(--space-sm);color:var(--fg);text-decoration:none;display:flex}.header-icon svg{width:18px;height:18px;display:block}.header-title{font-size:var(--text-lg);letter-spacing:-.01em;font-weight:500}.header-actions{align-items:center;gap:var(--space-xs);display:flex}.icon-btn{width:40px;height:40px;color:var(--fg-secondary);transition:background var(--duration-fast) ease, color var(--duration-fast) ease;visibility:visible;border-radius:8px;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--bg-subtle);color:var(--fg)}.icon-btn svg{width:20px;height:20px}.desktop-only{display:none!important}@media (width>=1025px){.desktop-only{display:flex!important}}#filter-trigger{position:relative}#filter-trigger.has-filters:after{content:"";background:var(--accent);pointer-events:none;border-radius:50%;width:6px;height:6px;position:absolute;top:6px;right:6px}.lang-toggle-btn{font-size:var(--text-xs);letter-spacing:.05em;font-weight:600}.avatar-badge{align-items:center;gap:var(--space-xs);padding:0 var(--space-sm) 0 0;background:var(--bg-subtle);border:1px solid var(--border);cursor:pointer;transition:background var(--duration-fast) ease;border-radius:14px;display:flex;position:relative}.avatar-badge:hover{background:var(--bg-hover,var(--bg-subtle))}.avatar-badge-icon{background:var(--avatar-color,var(--fg-muted));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.avatar-badge-icon svg{width:13px;height:13px}.avatar-badge-label{font-size:var(--text-xs,.75rem);color:var(--fg-secondary);white-space:nowrap;text-overflow:ellipsis;max-width:100px;font-weight:500;overflow:hidden}.avatar-badge-claim-label{font-size:var(--text-xs,.75rem);color:var(--accent);white-space:nowrap;padding-left:var(--space-xs);border-left:1px solid var(--border);font-weight:600}.avatar-badge[hidden]{display:none}@media (width<=639px){.avatar-badge{padding-right:0}.avatar-badge-label,.avatar-badge-claim-label{display:none}}.avatar-badge.has-room:after{content:"";background:var(--accent);border:1.5px solid var(--bg);border-radius:50%;width:8px;height:8px;position:absolute;top:-1px;left:21px}[data-icon=salad],[data-icon=leaf]{color:var(--tag-green)}[data-icon=flame],[data-icon=beef]{color:var(--tag-red)}[data-icon=pizza],[data-icon=sandwich],[data-icon=hamburger]{color:var(--tag-peach)}[data-icon=fish],[data-icon=waves]{color:var(--tag-blue)}[data-icon=coffee],[data-icon=beer],[data-icon=crown]{color:var(--tag-yellow)}[data-icon=soup],[data-icon=cooking-pot],[data-icon=chef-hat]{color:var(--tag-lavender)}[data-icon=utensils],[data-icon=truck],[data-icon=train]{color:var(--tag-teal)}[data-icon=bean]{color:var(--tag-red)}.party-toggle{width:28px;height:28px;margin:var(--space-sm) auto 0;color:var(--fg-muted);cursor:pointer;transition:color var(--duration-normal) ease, border-color var(--duration-normal) ease;background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.party-toggle:hover{color:var(--fg-secondary);border-color:var(--border)}html.party{--party-red:#ef4444;--party-orange:#f97316;--party-yellow:#eab308;--party-green:#22c55e;--party-blue:#3b82f6;--party-purple:#a855f7}html.party .party-toggle{color:var(--party-red);border-color:var(--party-red);animation:6s linear infinite party-hue}html.party .party-toggle svg{animation:4s linear infinite party-spin}html.party .day-header,html.party .restaurant-section,html.party .sidebar-toc,html.party .map-panel-header,html.party .more-menu{border-image:linear-gradient(90deg, var(--party-red), var(--party-orange), var(--party-yellow), var(--party-green), var(--party-blue), var(--party-purple), var(--party-red)) 1}html.party .toc-viewport{border-left-color:var(--party-purple);animation:8s linear infinite party-hue}html.party .map-marker-icon{animation:6s linear infinite party-hue}html.party .restaurant-icon svg{animation:4s linear infinite party-spin,8s linear infinite party-hue}html.party .toc-restaurant-icon svg{animation:5s linear infinite party-spin,8s linear infinite party-hue}html.party .map-marker-icon svg{animation:4s linear infinite party-spin}html.party #brand-icon svg{color:var(--party-red);animation:4s linear infinite party-spin,6s linear infinite party-hue}html.party .day-header-label{background:linear-gradient(90deg, var(--party-red), var(--party-orange), var(--party-yellow), var(--party-green), var(--party-blue), var(--party-purple), var(--party-red));-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:6s linear infinite party-shimmer}html.party .restaurant-badge-dot,html.party .leader-pill-crown svg,html.party .leader-pill-ord{animation:6s linear infinite party-hue}html.party .vote-btn svg{animation:2s ease-in-out infinite party-pulse,6s linear infinite party-hue}html.party .voter-dot{animation:1.5s ease-in-out infinite party-bounce}html.party .voter-dot:nth-child(2){animation-delay:.2s}html.party .voter-dot:nth-child(3){animation-delay:.4s}html.party .voter-dot:nth-child(4){animation-delay:.6s}html.party .voter-dot:nth-child(5){animation-delay:.8s}html.party .filter-pill:hover{animation:8s linear infinite party-hue,.4s party-jiggle}html.party .sidebar-toc-today-badge{animation:6s linear infinite party-hue}html.party .sidebar-toc-day.today{background:linear-gradient(90deg, var(--party-red), var(--party-orange), var(--party-yellow), var(--party-green), var(--party-blue), var(--party-purple), var(--party-red));-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:6s linear infinite party-shimmer}@keyframes party-hue{0%{filter:hue-rotate()saturate(1.6)}to{filter:hue-rotate(360deg)saturate(1.6)}}@keyframes party-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes party-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes party-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes party-shimmer{0%{background-position:0%}to{background-position:200%}}@keyframes party-jiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.party-confetti{pointer-events:none;z-index:9999;color:var(--party-red,var(--tag-red));animation:1.2s ease-out forwards party-confetti-burst,1.2s linear forwards party-hue;position:fixed}.party-confetti svg{width:16px;height:16px}@keyframes party-confetti-burst{0%{opacity:1;transform:translate(0)scale(.5)rotate(0)}60%{opacity:1}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(1) rotate(360deg)}}.refresh-toast{bottom:var(--space-md);transform:translate(-50%, var(--space-sm));padding:var(--space-sm) var(--space-md);background:var(--fg);color:var(--bg);font-size:var(--text-sm);opacity:0;pointer-events:none;transition:opacity var(--duration-normal) var(--ease-out), transform var(--duration-normal) var(--ease-out);z-index:600;border-radius:999px;position:fixed;left:50%;box-shadow:0 4px 16px #0003}.refresh-toast.visible{opacity:1;transform:translate(-50%)}.overlay-centered{z-index:250;opacity:0;transition:opacity var(--duration-normal) ease;background:#00000080;flex-direction:column;align-items:center;padding-top:15vh;display:flex;position:fixed;inset:0}.overlay-centered.visible{opacity:1}@media (width>=640px){.overlay-centered{-webkit-backdrop-filter:blur(4px)}}.overlay-panel{background:var(--bg);border:1px solid var(--border);padding:var(--space-lg);width:90%;max-width:480px;max-height:70vh;transition:transform var(--duration-normal) var(--ease-out);border-radius:16px;overflow-y:auto;transform:scale(.96)translateY(8px);box-shadow:0 8px 32px #0000001f,0 2px 8px #00000014}.overlay-centered.visible .overlay-panel{transform:scale(1)translateY(0)}[data-theme=dark] .overlay-panel{box-shadow:0 8px 32px #0006,0 2px 8px #0000004d}@media (width<=639px){.overlay-centered{justify-content:flex-end;align-items:stretch;padding-top:0}.overlay-panel{border-radius:16px 16px 0 0;width:100%;max-width:none;max-height:85vh}}.overlay-header{padding-bottom:var(--space-md);margin-bottom:var(--space-md);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.overlay-title{font-weight:600;font-size:var(--text-lg);letter-spacing:-.01em}.consent-body{gap:var(--space-sm);flex-direction:column;display:flex}.consent-description{color:var(--fg);font-size:var(--text-sm);line-height:1.5}.consent-identity{align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:20px;width:fit-content;display:inline-flex}.consent-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.consent-identity-label{font-size:var(--text-sm);font-weight:600}.consent-muted{color:var(--fg-muted);font-size:var(--text-sm);margin:0}.consent-relay-list{padding:var(--space-sm);background:var(--bg-subtle);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--text-xs,.75rem);color:var(--fg-secondary);border-radius:8px;margin:0;line-height:1.8;list-style:none}.consent-fine-print{gap:var(--space-xs);color:var(--fg-muted);font-size:var(--text-xs,.75rem);flex-direction:column;line-height:1.5;display:flex}.consent-fine-print p{margin:0}.consent-accept{width:100%;margin-top:var(--space-xs);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);background:var(--accent);color:var(--bg);cursor:pointer;transition:opacity var(--duration-fast) ease;border:none;border-radius:10px;font-weight:600}.consent-accept:hover{opacity:.85}.shortcuts-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.shortcuts-table tr{transition:background var(--duration-fast) ease;border-radius:6px}.shortcuts-table tr:hover{background:var(--bg-subtle)}.shortcuts-table td{padding:var(--space-sm) var(--space-sm)}.shortcuts-keys{white-space:nowrap;width:1%;padding-right:var(--space-lg)!important}.shortcuts-keys kbd{font-size:var(--text-xs);background:var(--bg-subtle);border:1px solid var(--border);text-align:center;border-radius:6px;min-width:24px;padding:3px 8px;font-weight:500}.shortcuts-desc{color:var(--fg-secondary)}.shortcuts-section th{padding:var(--space-md) var(--space-sm) var(--space-xs);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);font-weight:600}.shortcuts-section:first-child th{padding-top:var(--space-xs)}.stale-banner{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);color:var(--fg-secondary);background:color-mix(in srgb, var(--tag-peach) 10%, var(--bg));border-bottom:1px solid color-mix(in srgb, var(--tag-peach) 25%, var(--border));text-align:center;top:var(--header-height,48px);z-index:9;display:flex;position:sticky}.stale-banner svg{opacity:.6;flex-shrink:0;width:16px;height:16px}.stale-banner-archive{background:color-mix(in srgb, var(--fg) 6%, var(--bg));border-bottom:1px solid var(--border);color:var(--fg)}.stale-banner .archive-back-btn{align-items:center;gap:var(--space-xs);margin-left:var(--space-sm);padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);color:var(--fg);background:var(--bg);border:1px solid var(--border);cursor:pointer;transition:background var(--duration-fast) ease;border-radius:6px;flex-shrink:0;display:inline-flex}.stale-banner .archive-back-btn:hover{background:var(--bg-subtle)}.stale-banner .archive-back-btn svg{opacity:1;width:12px;height:12px}@media (width<=480px){.stale-banner-archive{padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);gap:var(--space-xs)}.stale-banner-archive .archive-back-btn{margin-left:var(--space-xs);padding:2px var(--space-xs)}}.footer{max-width:960px;margin:var(--space-xl) auto var(--space-lg);padding:0 var(--space-md);font-size:var(--text-xs);color:var(--fg-muted);text-align:center}.timeline{max-width:720px;padding:var(--space-md);margin:0 auto}@media (width>=1441px){.timeline,.main-content .timeline{max-width:1060px}}@media (width>=1921px){.timeline,.main-content .timeline{max-width:1500px}}.day-section{margin-bottom:var(--space-sm)}.day-header{min-height:48px;padding:var(--space-sm) 0;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border);transition:background var(--duration-fast) ease;justify-content:space-between;align-items:center;display:flex}.day-header:hover{background:var(--bg-subtle);margin:0 calc(-1 * var(--space-md));padding-left:var(--space-md);padding-right:var(--space-md)}.day-header-left{align-items:center;gap:var(--space-sm);display:flex}.day-header-chevron{color:var(--fg-muted);transition:transform var(--duration-normal) var(--ease-out);display:flex}.day-header-chevron svg{width:16px;height:16px}.day-section.expanded .day-header-chevron{transform:rotate(90deg)}.day-header-label{font-size:var(--text-lg);font-weight:600}.day-header-today{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--accent);font-weight:500}.day-header-count{flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.day-section.expanded .day-header{z-index:8;background:var(--bg);position:sticky;top:48px}.leader-pill{font-size:var(--text-xs,.75rem);color:var(--fg-muted);white-space:nowrap;border:1px solid var(--border);background:var(--bg-subtle);border-radius:10px;flex-shrink:1;align-items:center;gap:3px;min-width:0;padding:2px 7px 2px 4px;display:inline-flex;overflow:hidden}.leader-pill-1st{color:var(--fg);border-color:var(--border)}.leader-pill-1st .leader-pill-ord{color:var(--tag-yellow)}.leader-pill-crown{flex-shrink:0;display:inline-flex}.leader-pill-crown svg{width:10px;height:10px;color:var(--tag-yellow)}.leader-pill-ord{color:var(--fg-muted);flex-shrink:0;font-size:.65rem;font-weight:700}.leader-pill-icon{flex-shrink:0;display:inline-flex}.leader-pill-icon svg{width:10px;height:10px}.leader-pill-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.day-section.past .day-header-label{color:var(--fg-muted)}.day-content{transition:height var(--duration-slow) var(--ease-out);overflow:hidden}.day-section.expanded .day-content{padding-top:var(--space-sm)}.day-section:not(.expanded) .day-content{height:0}@media (width<=1024px){.leader-pill:not(.leader-pill-1st){display:none}}@media (width>=720px){.timeline{max-width:960px}.day-restaurants{columns:2;column-gap:var(--space-sm)}.restaurant-section{break-inside:avoid}}@media (width>=1921px){.day-restaurants{columns:3}}.restaurant-section{padding:var(--space-lg) 0 var(--space-md);border-top:1px solid var(--border)}.restaurant-section:first-child{border-top:none}@media (width>=720px){.restaurant-section{padding:var(--space-md);margin-bottom:var(--space-sm);background:var(--bg-subtle);border:1px solid var(--border);border-radius:3px}}.restaurant-header-row{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);display:flex}.restaurant-name{align-items:center;gap:var(--space-sm);font-size:var(--text-lg);color:var(--fg);font-weight:600;display:inline-flex}.restaurant-icon{flex-shrink:0;align-items:center;display:inline-flex}.restaurant-icon svg{width:16px;height:16px}.restaurant-actions{align-items:center;gap:var(--space-xs);display:flex}.map-fly-btn{width:32px;height:32px}.map-fly-btn svg{width:16px;height:16px}.restaurant-meta{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);font-size:var(--text-sm);color:var(--fg-secondary);flex-wrap:wrap;display:flex}.restaurant-badge{font-size:var(--text-xs);color:var(--fg-secondary);align-items:center;gap:3px;display:inline-flex}.restaurant-badge-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.vote-btn{justify-content:center;align-items:center;gap:var(--space-xs);width:32px;height:32px;color:var(--fg-secondary);cursor:pointer;transition:background var(--duration-fast) ease, color var(--duration-fast) ease, transform var(--duration-normal) var(--ease-out);background:0 0;border:1px solid #0000;border-radius:8px;display:flex}.vote-btn:hover{background:var(--bg-subtle);color:var(--fg)}@media (width>=720px){.vote-btn:hover{background:var(--bg)}}.vote-btn.vote-active{border:1px solid var(--border);background:var(--bg-subtle);width:auto;height:28px;color:var(--fg);border-radius:14px;gap:5px;padding:0 4px 0 6px}.vote-btn.vote-active:hover{border-color:var(--fg-muted)}.vote-btn.voted .vote-check svg{fill:var(--accent);color:var(--accent)}.vote-check{align-items:center;display:flex}.vote-btn svg{width:16px;height:16px}.vote-count{font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:600;line-height:1}.vote-btn.vote-saving,.vote-btn.vote-saved{gap:5px;width:auto}.vote-btn.vote-saving:after{content:"";border:1.5px solid var(--fg-muted);border-top-color:#0000;border-radius:50%;flex-shrink:0;width:12px;height:12px;animation:.6s linear infinite vote-spin}@keyframes vote-spin{to{transform:rotate(360deg)}}.vote-btn.vote-saved:after{content:"✓";color:var(--tag-green);flex-shrink:0;font-size:12px;font-weight:700;line-height:1}.menu-category{margin-bottom:var(--space-md);break-inside:avoid}.category-name{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--fg-muted);margin-bottom:var(--space-xs);font-weight:500}.menu-item{padding:3px 0;padding-left:calc(var(--space-sm) - 2px);align-items:baseline;gap:var(--space-xs);cursor:pointer;transition:background var(--duration-fast) ease;break-inside:avoid;border-left:2px solid #0000;border-radius:4px;flex-wrap:wrap;display:flex}.menu-item:hover{background:var(--bg-subtle)}@media (width>=720px){.menu-item:hover{background:var(--bg)}}.menu-item-title{font-size:var(--text-base);color:var(--fg);flex:1;min-width:40%}.menu-item-end{align-items:baseline;gap:var(--space-xs);padding-left:var(--space-sm);flex-shrink:0;margin-left:auto;display:inline-flex}.menu-item-price{font-size:var(--text-base);font-variant-numeric:tabular-nums;color:var(--fg);white-space:nowrap}.menu-item-tags{flex-wrap:wrap;gap:3px;width:100%;display:flex}.tag-pill{text-transform:uppercase;color:var(--tag-color,var(--fg-muted));border:1px solid var(--tag-color,var(--border));white-space:nowrap;border-radius:99px;padding:0 4px;font-size:.5625rem;line-height:1.5;display:inline-block}.menu-item-description{width:100%;font-size:var(--text-sm);color:var(--fg-secondary);padding-left:0}.menu-item-allergens{width:100%;font-size:var(--text-xs);color:var(--fg-muted)}.restaurant-website-link-text{margin-top:var(--space-xs);font-size:var(--text-xs);color:var(--fg-muted);transition:color var(--duration-fast) ease;align-items:center;gap:3px;text-decoration:none;display:inline-flex}a.restaurant-website-link-text:hover{color:var(--fg)}a.restaurant-website-link-text:hover>span{text-underline-offset:2px;text-decoration:underline}.restaurant-website-link-text svg{opacity:.75;flex-shrink:0;width:11px;height:11px}.availability-tag{font-size:var(--text-xs);color:var(--fg-muted);background:var(--bg-subtle);border:1px solid var(--border);margin-left:var(--space-sm);white-space:nowrap;vertical-align:middle;border-radius:99px;padding:1px 8px;font-weight:600;display:inline-block}.restaurant-section.restaurant-unavailable{opacity:.45}.menu-item.selected{background:color-mix(in srgb, var(--accent) 8%, transparent);border-left-color:var(--accent);border-radius:0 4px 4px 0}.menu-item-check{width:16px;height:16px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:none}.menu-item-check svg{width:12px;height:12px}.menu-item.selected .menu-item-check{display:flex}.restaurant-section.share-any .menu-item:not(.selected){opacity:.45}.restaurant-section.share-any .menu-item:not(.selected):hover{opacity:.7}.restaurant-section.share-all{background:color-mix(in srgb, var(--accent) 6%, transparent)}@media (width>=720px){.restaurant-section.share-all{background:color-mix(in srgb, var(--accent) 6%, var(--bg-subtle))}}.restaurant-section.highlighted{box-shadow:inset 0 0 0 2px var(--accent);animation:.6s ease-out pulse-highlight}@keyframes pulse-highlight{0%{background:color-mix(in srgb, var(--accent) 10%, transparent)}to{background:0 0}}@media (width>=720px){@keyframes pulse-highlight{0%{background:color-mix(in srgb, var(--accent) 10%, var(--bg-subtle))}to{background:var(--bg-subtle)}}}.voter-dots{flex-shrink:0;align-items:center;gap:0;display:inline-flex}.voter-dot{background:var(--voter-color);border:1.5px solid var(--bg);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;margin-left:-5px;display:flex}.voter-dot:first-child{margin-left:0}.voter-dot svg{flex-shrink:0;width:10px;height:10px}.voter-dot-self{border-color:var(--accent);border-width:2px}.voter-dot-overflow{font-size:var(--text-xs);color:var(--fg-muted);margin-left:2px;font-weight:500}.pin-btn{width:32px;height:32px;color:var(--fg-secondary);cursor:pointer;transition:background var(--duration-fast) ease, color var(--duration-fast) ease;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;display:flex}.pin-btn:hover{background:var(--bg-subtle);color:var(--fg)}@media (width>=720px){.pin-btn:hover{background:var(--bg)}}.pin-btn.pinned{color:var(--tag-yellow)}.pin-btn.pinned svg{fill:currentColor}.pin-btn svg{width:16px;height:16px}.pinned-divider{align-items:center;gap:var(--space-sm);padding:var(--space-lg) 0 0;color:var(--fg-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;column-span:all;font-weight:500;display:flex}.pinned-divider:after{content:"";background:var(--border);flex:1;height:1px}.filter-pill{font-size:var(--text-xs);color:var(--fg);background:var(--bg-subtle);border:1px solid var(--border);white-space:nowrap;cursor:pointer;transition:background var(--duration-fast) ease;border-radius:99px;align-items:center;gap:4px;padding:4px 10px;display:inline-flex}.filter-pill:hover{background:var(--border)}.filter-pill .tag-pill{border:none}.filter-actions{gap:var(--space-sm);margin-bottom:var(--space-lg);display:flex}.filter-grid{flex-wrap:wrap;gap:10px;display:flex}.filter-grid .filter-pill{border:1px solid var(--border);padding:var(--space-xs) var(--space-sm);transition:border-color var(--duration-fast) ease, background var(--duration-fast) ease, transform var(--duration-fast) ease;border-radius:20px}.filter-grid .filter-pill:hover{background:var(--bg-subtle);transform:translateY(-1px)}.filter-action-btn{font-size:var(--text-xs);color:var(--fg-secondary);padding:var(--space-xs) 12px;border:1px solid var(--border);transition:background var(--duration-fast) ease, color var(--duration-fast) ease;border-radius:20px;font-weight:500}.filter-action-btn:hover{background:var(--bg-subtle);color:var(--fg)}.more-menu-overlay{z-index:200;opacity:0;transition:opacity var(--duration-fast) ease;background:#0000008c;position:fixed;inset:0}.more-menu-overlay.visible{opacity:1}.more-menu-overlay[hidden]{display:none}.more-menu{top:52px;right:var(--space-md);min-width:220px;padding:var(--space-sm) 0;background:var(--bg);border:1px solid var(--border);transform-origin:100% 0;opacity:0;transition:transform var(--duration-fast) var(--ease-out), opacity var(--duration-fast) ease;border-radius:12px;position:absolute;transform:scale(.95);box-shadow:0 8px 30px #0000001f}.more-menu-overlay.visible .more-menu{opacity:1;transform:scale(1)}.more-menu-item{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);font-size:var(--text-base);color:var(--fg);text-align:left;transition:background var(--duration-fast) ease;display:flex;position:relative}.more-menu-item:hover{background:var(--bg-subtle)}.more-menu-label{flex:1}.more-menu-item kbd{opacity:.5;margin-left:auto}.more-menu-item svg{width:18px;height:18px;color:var(--fg-secondary);flex-shrink:0}.more-menu-separator{height:1px;margin:var(--space-xs) 0;background:var(--border)}@media (width<=639px){.more-menu{transform-origin:bottom;border-radius:12px 12px 0 0;max-height:80vh;position:fixed;inset:auto 0 0;overflow-y:auto;transform:translateY(100%)}.more-menu-overlay.visible .more-menu{transform:translateY(0)}}.more-menu-has-sub .more-menu-caret{transition:transform var(--duration-fast) ease;color:var(--fg-secondary);opacity:.5;margin-left:auto;display:inline-flex}.more-menu-has-sub .more-menu-caret svg{width:14px;height:14px}.more-menu-has-sub.expanded .more-menu-caret{transform:rotate(90deg)}.more-menu-sub{padding-left:calc(var(--space-md) + 26px);font-size:var(--text-sm);color:var(--fg-secondary)}.search-overlay{z-index:300;opacity:0;transition:opacity var(--duration-fast) ease;background:#00000080;flex-direction:column;align-items:center;padding-top:15vh;display:flex;position:fixed;inset:0}.search-overlay.visible{opacity:1}.search-overlay[hidden]{display:none}.search-container{width:90%;max-width:560px}.search-input{width:100%;padding:var(--space-sm) 0;font-size:var(--text-lg);font-family:var(--font);color:var(--fg);border:none;border-bottom:2px solid var(--accent);background:0 0;outline:none}.search-input::placeholder{color:var(--fg-muted)}.search-results{max-height:50vh;margin-top:var(--space-sm);background:var(--bg);border-radius:8px;overflow-y:auto}.search-result{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);cursor:pointer}.search-result:hover{background:var(--bg-subtle)}.search-result:last-child{border-bottom:none}.search-result-restaurant{font-weight:600;font-size:var(--text-base);align-items:center;gap:6px;display:flex}.search-result-icon{flex-shrink:0;display:inline-flex}.search-result-item{font-size:var(--text-sm);color:var(--fg-secondary)}.search-highlight{background:color-mix(in srgb, var(--accent) 20%, transparent);border-radius:2px}@media (width<=639px){.search-overlay{padding-top:48px}.search-container{flex-direction:column;width:100%;height:100%;display:flex}.search-input{padding:var(--space-md);border-bottom-width:1px}.search-results{border-radius:0;flex:1}}.empty-state{text-align:center;min-height:40vh;color:var(--fg-muted);justify-content:center;align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.empty-state-icon svg{width:48px;height:48px}.empty-state-title{font-size:var(--text-lg);font-weight:500}.empty-state-text{font-size:var(--text-sm)}.skeleton-line{background:var(--bg-subtle);border-radius:4px;height:14px;margin-bottom:8px;animation:1.5s ease-in-out infinite skeleton-pulse}.skeleton-line-short{width:40%}.skeleton-line-medium{width:70%}.skeleton-line-long{width:90%}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:1}}@media (width>=1025px){body{display:flex}.sidebar-toc{width:200px;height:calc(100dvh - 48px);padding:var(--space-sm) var(--space-sm);border-right:1px solid var(--border);opacity:0;transition:opacity var(--duration-normal) ease;flex-shrink:0;position:sticky;top:48px;overflow-y:auto}.sidebar-toc.ready{opacity:1}.sidebar-toc a{z-index:1;padding:4px var(--space-sm);font-size:var(--text-xs);color:var(--fg-secondary);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;display:block;position:relative;overflow:hidden}.sidebar-toc a:hover{color:var(--fg);background:var(--bg-subtle)}.sidebar-toc-day.in-view{color:var(--fg)}.toc-viewport{z-index:0;background:var(--bg-subtle);border-left:2px solid var(--accent);pointer-events:none;opacity:0;transition:transform var(--duration-normal) var(--ease-out), height var(--duration-normal) var(--ease-out), opacity var(--duration-fast) ease;border-radius:2px;position:absolute;top:0;left:0;right:0}.sidebar-toc-day{font-weight:600;font-size:var(--text-sm);color:var(--fg);padding:var(--space-sm) var(--space-sm) 2px;margin-top:var(--space-xs)}.sidebar-toc-day:first-child{margin-top:0}.sidebar-toc-day.today{color:var(--accent)}.sidebar-toc a:not(.sidebar-toc-day){align-items:center;gap:6px;display:flex}.toc-restaurant-icon{flex-shrink:0;display:inline-flex}.toc-restaurant-icon svg{width:12px;height:12px}.sidebar-toc-today-badge{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--accent);margin-left:4px;font-weight:500}.sidebar-toc-link-restaurant{opacity:.5}.main-content{flex-direction:column;flex:1;min-width:0;display:flex}.main-content .timeline{flex:1;max-width:none;margin:0}}@media (width<=1024px){.sidebar-toc{display:none}}.map-panel{z-index:150;background:var(--bg);border-top:1px solid var(--border);max-width:100vw;height:60vh;transition:transform var(--duration-slow) var(--ease-out);border-radius:12px 12px 0 0;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(100%)}.map-panel.visible{transform:translateY(0)}.map-backdrop{z-index:149;opacity:0;transition:opacity var(--duration-slow) ease;pointer-events:none;background:#00000080;position:fixed;inset:0}.map-backdrop.visible{opacity:1;pointer-events:auto}.map-panel-header{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.map-panel-header h2{font-size:var(--text-base);font-weight:600}.map-container{flex:1;width:100%;min-height:0;overflow:hidden}@media (width>=1025px){.map-panel{border-left:1px solid var(--border);border-top:none;border-radius:0;width:400px;height:100vh;top:0;bottom:0;left:auto;transform:translate(100%)}.map-panel.visible{transform:translate(0)}}.map-marker{background:0 0!important;border:none!important}.map-marker-icon{background:var(--bg);border:2px solid;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;display:flex;box-shadow:0 2px 6px #0003}.map-marker-icon svg{width:16px;height:16px}.leaflet-popup-content-wrapper{font-family:var(--font);font-size:var(--text-sm);color:var(--fg);background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #00000026}.leaflet-popup-tip{background:var(--bg);border:1px solid var(--border)}.leaflet-control-attribution{opacity:.7;font-size:10px;background:var(--bg)!important;color:var(--fg-muted)!important}[data-theme=dark] .leaflet-tile-pane{filter:invert()hue-rotate(180deg)saturate(.6)brightness(.85)}.map-drag-handle{cursor:ns-resize;touch-action:none;flex-shrink:0;justify-content:center;align-items:center;padding:8px 0;display:flex}.map-drag-handle:hover .map-drag-pill,.map-drag-handle:active .map-drag-pill{opacity:.8}.map-drag-pill{background:var(--fg-muted);opacity:.5;border-radius:3px;width:40px;height:5px;transition:opacity .15s}.map-drag-pill:first-child,.map-drag-pill:last-child{display:none}@media (width>=1025px){.map-drag-handle{cursor:ew-resize;z-index:10;background:var(--border);flex-direction:column;gap:3px;width:10px;padding:0;transition:background .15s;position:absolute;top:0;bottom:0;left:0}.map-drag-handle:hover,.map-drag-handle:active{background:color-mix(in srgb, var(--accent) 50%, transparent)}.map-drag-pill{background:var(--fg-muted);opacity:.6;border-radius:50%;flex-shrink:0;width:3px;height:3px;display:block}}.share-panel{z-index:160;background:var(--bg);border-top:1px solid var(--border);padding:var(--space-md) var(--space-md) calc(var(--space-md) + env(safe-area-inset-bottom,0px));transition:transform var(--duration-slow) var(--ease-out);position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.share-panel.visible{transform:translateY(0)}.share-panel-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.share-panel-title{font-weight:600;font-size:var(--text-base);color:var(--fg-muted)}.share-panel-restaurants{margin-bottom:var(--space-md);flex-direction:column;gap:6px;display:flex}.share-panel-restaurant{align-items:center;gap:var(--space-sm);font-size:var(--text-base);display:flex}.share-panel-restaurant-count{color:var(--fg-muted);font-size:var(--text-sm)}.share-panel-badges{color:var(--fg-muted);font-size:var(--text-xs)}.share-panel-day-label{font-size:var(--text-xs);color:var(--fg-secondary);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-xs) 0;margin-top:var(--space-xs);font-weight:600}.share-panel-overflow{font-size:var(--text-xs);color:var(--fg-muted);padding:var(--space-xs) 0;font-weight:600}.share-panel-buttons{gap:var(--space-sm);display:flex}.share-panel-btn{justify-content:center;align-items:center;gap:var(--space-sm);height:44px;font-size:var(--text-sm);color:var(--fg-secondary);background:var(--bg-subtle);transition:color var(--duration-fast) ease, background var(--duration-fast) ease;border-radius:8px;flex:1;font-weight:500;display:flex}.share-panel-btn:hover{color:var(--fg)}.share-panel-btn:active{opacity:.7}.share-panel-btn svg{width:16px;height:16px}.share-panel-btn kbd{opacity:.35;padding:1px 5px;font-size:10px}@media (hover:none){.share-panel-btn kbd{display:none}}.share-toast-backdrop{z-index:400;opacity:0;transition:opacity var(--duration-normal) ease;background:#0000008c;position:fixed;inset:0}.share-toast-backdrop.visible{opacity:1}.share-toast-backdrop.flash{animation:.3s ease-out toast-flash}@keyframes toast-flash{0%{background:#fff3}to{background:#0000008c}}.share-toast{z-index:401;background:var(--bg);border:1px solid var(--border);padding:var(--space-md);opacity:0;max-width:90vw;max-height:80vh;transition:opacity var(--duration-normal) ease, transform var(--duration-normal) var(--ease-out);text-align:center;border-radius:12px;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)scale(.95)}.share-toast.visible{opacity:1;transform:translate(-50%,-50%)scale(1)}.share-toast-preview{max-width:100%;max-height:50vh;margin-bottom:var(--space-sm);border-radius:8px;display:block}.share-toast-text-preview{max-height:30vh;padding:var(--space-sm);margin-bottom:var(--space-sm);font-size:var(--text-xs);color:var(--fg-secondary);background:var(--bg-subtle);text-align:left;white-space:pre-wrap;word-break:break-word;border-radius:8px;overflow-y:auto}.share-toast-label{font-size:var(--text-sm);color:var(--fg);font-weight:500;display:block}.vr-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.vr-title{font-weight:600}.vr-close{width:32px;height:32px;color:var(--fg-secondary);transition:background var(--duration-fast) ease, color var(--duration-fast) ease;border-radius:8px;justify-content:center;align-items:center;display:flex}.vr-close:hover{background:var(--bg-subtle);color:var(--fg)}.vr-joined-banner{font-size:var(--text-sm);color:var(--tag-green);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);background:var(--bg-subtle);text-align:center;border-radius:8px}.vr-identity{align-items:center;gap:var(--space-sm);padding:var(--space-sm);margin-bottom:var(--space-md);border:1px solid var(--border);border-radius:8px;display:flex}.vr-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.identity-prefix{font-size:var(--text-sm);color:var(--fg-secondary)}.vr-identity-label{flex:1;font-size:.9em}.vr-copy-btn{width:32px;height:32px;color:var(--fg-muted);transition:background var(--duration-fast) ease, color var(--duration-fast) ease;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.vr-copy-btn:hover{background:var(--bg-subtle);color:var(--fg)}.vr-not-connected{color:var(--fg-muted);margin-bottom:var(--space-md);text-align:center;font-size:.85em}.vr-room-list{margin-bottom:var(--space-md);flex-direction:column;gap:2px;display:flex}.vr-room-row{align-items:center;gap:var(--space-sm);padding:var(--space-sm);cursor:pointer;border-radius:8px;display:flex}.vr-room-row.active{background:var(--bg-subtle)}.vr-room-check{flex-shrink:0;width:16px;display:inline-flex}.vr-room-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.vr-room-actions{flex-shrink:0;gap:2px;display:flex}.vr-action-btn{width:28px;height:28px;color:var(--fg-muted);transition:background var(--duration-fast) ease, color var(--duration-fast) ease;border-radius:8px;justify-content:center;align-items:center;font-size:.8em;display:flex}.vr-action-btn:hover{background:var(--bg-subtle);color:var(--fg)}.vr-action-btn.leave{font-size:.9em}.vr-create-btn{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm);border:1px solid var(--border);cursor:pointer;color:var(--fg);background:0 0;border-radius:8px;font-weight:500;display:flex}.vr-create-icon{font-size:1.2em;line-height:1}.dice-overlay{z-index:500;opacity:0;transition:opacity var(--duration-normal) ease;pointer-events:none;background:0 0;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dice-overlay[hidden]{display:none}.dice-overlay.visible{opacity:1;pointer-events:auto}.dice-face{animation:dice-tumble 1.5s var(--ease-out) forwards;animation-delay:calc(var(--dice-i) * 50ms);opacity:0;font-size:3rem;position:absolute}@keyframes dice-tumble{0%{opacity:1;transform:translate(calc((var(--dice-i) - 2.5) * 40px), 60px) rotate(0deg) scale(.5)}30%{opacity:1;transform:translate(calc((var(--dice-i) - 2.5) * 60px), -30px) rotate(calc(var(--dice-i) * 120deg)) scale(1.2)}70%{opacity:1;transform:translate(calc((var(--dice-i) - 2.5) * 30px), 10px) rotate(calc(var(--dice-i) * 240deg)) scale(1)}to{opacity:0;transform:translate(calc((var(--dice-i) - 2.5) * 20px), 0) rotate(calc(var(--dice-i) * 360deg)) scale(.8)}}@property --dice-hue{syntax:"<angle>";inherits:false;initial-value:0deg}.dice-pick{--dice-hue:0deg;padding:var(--space-xs) var(--space-sm);margin:var(--space-xs) 0;background:hsl(var(--dice-hue) 80% 50% / .06);box-shadow:inset 0 0 0 2px hsl(var(--dice-hue) 75% 55%), 0 0 10px 1px hsl(var(--dice-hue) 75% 55% / .25);animation:4s linear infinite dice-hue-cycle}@keyframes dice-hue-cycle{0%{--dice-hue:0deg}to{--dice-hue:360deg}}
