:root{--bg-deep:#0c1826;--bg-deep-2:#081019;--surface:#14263a;--surface-2:#1b3149;--line:#28405a;--text:#f2f6fa;--text-muted:#8fa3ba;--amber:#f2a93b;--amber-dim:#8a6423;--teal:#4fd8b0;--teal-dim:#1f5245;--coral:#ff7a6b;--coral-dim:#5a2b26;--radius:14px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(ellipse 80% 50% at 50% -10%, #4fd8b017, transparent), linear-gradient(180deg, var(--bg-deep) 0%, var(--bg-deep-2) 100%);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Inter,system-ui,sans-serif}h1,h2,h3,.display{font-family:Bricolage Grotesque,Inter,sans-serif}.mono{font-family:JetBrains Mono,monospace}a{color:inherit}button{font-family:inherit}.shell{max-width:1080px;margin:0 auto;padding:0 24px}.nav{justify-content:space-between;align-items:center;padding:22px 0 10px;display:flex}.nav-brand{align-items:center;gap:10px;display:flex}.nav-brand svg{flex-shrink:0}.nav-brand span{letter-spacing:-.01em;font-size:20px;font-weight:700}.demo-pill{letter-spacing:.06em;color:var(--text-muted);border:1px solid var(--line);text-transform:uppercase;border-radius:999px;padding:4px 10px;font-family:JetBrains Mono,monospace;font-size:11px}.hero{padding:36px 0 20px}.hero-eyebrow{color:var(--teal);letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px;font-family:JetBrains Mono,monospace;font-size:12px}.hero h1{letter-spacing:-.02em;margin:0 0 8px;font-size:clamp(30px,5vw,50px);font-weight:700;line-height:1.05}.hero p.sub{color:var(--text-muted);max-width:520px;margin:0 0 32px;font-size:16px}.route-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:28px 28px 22px;position:relative;overflow:hidden}.route-mode-toggle{background:var(--bg-deep-2);border-radius:10px;gap:6px;width:max-content;margin-bottom:22px;padding:4px;display:flex}.route-mode-toggle button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;transition:all .15s}.route-mode-toggle button.active{background:var(--amber);color:#231404}.route-inputs{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:26px;display:flex}.route-inputs input{background:var(--bg-deep-2);border:1px solid var(--line);color:var(--text);border-radius:10px;outline:none;flex:1;min-width:150px;padding:12px 14px;font-size:15px;transition:border-color .15s}.route-inputs input:focus{border-color:var(--amber)}.route-arrow{color:var(--text-muted);font-size:18px}.btn-primary{background:var(--amber);color:#231404;cursor:pointer;white-space:nowrap;border:none;border-radius:10px;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:700;transition:transform .1s,filter .15s;display:inline-flex}.btn-primary:hover{filter:brightness(1.08)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled,.btn-ghost:disabled{opacity:.65;cursor:not-allowed;transform:none}.btn-ghost{border:1px solid var(--line);color:var(--text);cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:8px;padding:12px 18px;font-size:14px;font-weight:600;transition:border-color .15s,background .15s;display:flex}.btn-ghost:hover{border-color:var(--teal);background:#4fd8b00f}.spinner{border:2px solid;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.gps-status{color:var(--teal);min-height:16px;margin-top:10px;font-family:JetBrains Mono,monospace;font-size:12px}.road-wrap{margin-top:6px;padding:18px 4px 30px;position:relative}.road-line{background-image:repeating-linear-gradient(90deg, var(--amber) 0 10px, transparent 10px 20px);opacity:.85;border-radius:3px;height:3px;position:relative}.road-car{filter:drop-shadow(0 0 6px #f2a93b99);font-size:20px;animation:7s linear infinite driveAlong;position:absolute;top:-11px;left:0}@keyframes driveAlong{0%{left:0%}to{left:calc(100% - 22px)}}.road-endpoints{justify-content:space-between;margin-top:2px;display:flex}.road-endpoint{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:12px}.road-endpoint b{color:var(--text);margin-top:2px;font-family:Inter,sans-serif;font-size:14px;display:block}.road-stops{height:0;position:absolute;top:12px;left:0;right:0}.road-stop{background:var(--bg-deep);border:2px solid var(--teal);cursor:pointer;border-radius:50%;width:11px;height:11px;transition:transform .15s;position:absolute;top:-4px;transform:translate(-50%)}.road-stop:hover{transform:translate(-50%)scale(1.4)}.road-stop.dim{border-color:var(--line);opacity:.4}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin:34px 0 8px;display:flex}.filters-label{color:var(--text-muted);margin-right:4px;font-size:13px;font-weight:600}.chip{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:9px 16px;font-size:13.5px;font-weight:600;transition:all .15s;display:flex}.chip .dot{background:var(--text-muted);border-radius:50%;width:7px;height:7px}.chip:hover{border-color:var(--teal)}.chip.active{background:var(--teal-dim);border-color:var(--teal);color:var(--teal)}.chip.active .dot{background:var(--teal)}.chip.meat.active{background:var(--coral-dim);border-color:var(--coral);color:var(--coral)}.chip.meat.active .dot{background:var(--coral)}.lang-row{align-items:center;gap:10px;margin:18px 0 6px;display:flex}.lang-row label{color:var(--text-muted);font-size:13px;font-weight:600}.lang-row select{background:var(--surface);border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:10px;padding:9px 14px;font-size:13.5px;font-weight:600}.results-header{justify-content:space-between;align-items:baseline;margin:38px 0 16px;display:flex}.results-header h2{margin:0;font-size:20px}.results-count{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:13px}.cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;padding-bottom:60px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:border-color .15s,transform .15s;overflow:hidden}.card:hover{border-color:var(--amber-dim)}.card.hidden{display:none}.card-img{object-fit:cover;background:var(--bg-deep-2);width:100%;height:150px;display:block}.card-body{padding:16px 18px 18px}.card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.card-title{margin:0 0 2px;font-size:16.5px;font-weight:700}.card-town{color:var(--text-muted);margin:0;font-size:13px}.card-km{color:var(--amber);white-space:nowrap;background:#f2a93b1a;border-radius:6px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:11.5px}.card-rating{flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 6px;display:flex}.stars{color:var(--amber);letter-spacing:1px;font-size:13px}.rating-num{color:var(--text-muted);font-size:13px}.status-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:6px;margin-left:auto;padding:3px 8px;font-size:11px;font-weight:700}.status-badge.open{background:var(--teal-dim);color:var(--teal)}.status-badge.closed,.status-badge.unknown{color:var(--text-muted);background:#8fa3ba26}.card-hours{color:var(--text-muted);margin:0 0 12px;font-family:JetBrains Mono,monospace;font-size:11.5px}.card-tags{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.ai-tag-note{color:var(--text-muted);margin:-8px 0 14px;font-size:11px;font-style:italic}.menu-note{color:var(--text-muted);padding:8px 0;font-size:12px}.menu-note a{color:var(--teal)}.tag{text-transform:uppercase;letter-spacing:.03em;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:700}.tag.vegan{background:var(--teal-dim);color:var(--teal)}.tag.vegetarian{color:#9be8d0;background:#4fd8b024}.tag.gluten-free{color:var(--amber);background:#f2a93b24}.tag.meat{background:var(--coral-dim);color:var(--coral)}.tag.dairy-free{color:var(--text-muted);background:#8fa3ba2e}.menu-toggle{background:var(--bg-deep-2);border:1px solid var(--line);width:100%;color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:13px;font-weight:600;transition:border-color .15s;display:flex}.menu-toggle:hover{border-color:var(--teal)}.menu-toggle svg{transition:transform .2s}.menu-toggle.open svg{transform:rotate(180deg)}.menu-panel{max-height:0;transition:max-height .25s;overflow:hidden}.menu-panel.open{max-height:400px;margin-top:12px}.menu-item{border-top:1px solid var(--line);padding:10px 0}.menu-item:first-child{border-top:none}.menu-item-orig{color:var(--text-muted);margin:0 0 2px;font-size:12px;font-style:italic}.menu-item-trans{margin:0 0 6px;font-size:14px;font-weight:600}.menu-item-tags{flex-wrap:wrap;gap:5px;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:60px 20px}.empty-state b{color:var(--text);margin-bottom:6px;font-size:16px;display:block}footer{border-top:1px solid var(--line);color:var(--text-muted);text-align:center;padding:26px 0 40px;font-size:12.5px}@media (width<=640px){.shell{padding:0 16px}.nav{flex-wrap:wrap;gap:8px;padding:16px 0 8px}.nav-brand span{font-size:18px}.hero{padding:20px 0 16px}.hero h1{font-size:28px}.hero p.sub{margin-bottom:22px;font-size:14.5px}.route-card{border-radius:16px;padding:18px 16px 16px}.route-mode-toggle{width:100%}.route-mode-toggle button{flex:1;padding:10px 8px;font-size:12.5px}.route-inputs{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:18px}.route-inputs input{width:100%;padding:13px 14px;font-size:16px}.route-arrow{display:none}.btn-primary{width:100%;padding:14px;font-size:15px}.btn-ghost{justify-content:center;width:100%;padding:14px}.road-wrap{padding:14px 2px 26px}.road-endpoint{font-size:11px}.road-endpoint b{font-size:12.5px}.filters{gap:8px;margin:26px 0 8px}.filters-label{width:100%;margin-bottom:2px}.chip{padding:8px 13px;font-size:12.5px}.lang-row{flex-direction:column;align-items:stretch;gap:8px;margin:16px 0 4px}.lang-row select{width:100%;padding:12px 14px;font-size:15px}.results-header{flex-direction:column;align-items:flex-start;gap:4px;margin:28px 0 12px}.results-header h2{font-size:18px}.cards{grid-template-columns:1fr;gap:14px;padding-bottom:40px}.card-img{height:170px}.card-body{padding:14px 15px 15px}.card-title{font-size:16px}.card-rating{gap:8px}.status-badge{margin-left:0}.menu-toggle{padding:12px;font-size:13.5px}footer{padding:20px 0 32px;font-size:12px}}@media (width<=380px){.hero h1{font-size:25px}.route-mode-toggle button{padding:9px 6px;font-size:11.5px}}@media (width<=640px){.road-stop{width:15px;height:15px}}
