.hero{padding:var(--space-7) var(--space-5) var(--space-6);text-align:center;animation:hero-rise .5s cubic-bezier(.16,1,.3,1) both}.hero__eyebrow{margin:0 0 var(--space-2);font-family:var(--font-body);font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.hero__name{margin:0;font-family:var(--font-display);font-optical-sizing:auto;font-weight:600;font-size:clamp(2rem,9vw,2.75rem);line-height:1.08;letter-spacing:-.01em;color:var(--ink);text-wrap:balance}.hero__rule{display:inline-block;margin-top:var(--space-4);width:2.5rem;height:3px;border-radius:2px;background:var(--accent)}.karte-switcher{display:flex;justify-content:center;gap:var(--space-1);margin:0 var(--space-5) var(--space-5);padding:var(--space-1);background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-md)}.karte-switcher__tab{flex:1;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.8125rem;font-weight:600;color:var(--muted);transition:color .16s ease,background-color .16s ease}.karte-switcher__tab:hover{color:var(--ink-soft)}.karte-switcher__tab[data-active=true]{color:var(--on-accent);background:var(--accent)}.sticky-nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--space-2);height:var(--nav-height);padding:0 var(--space-3) 0 var(--space-5);background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--rule)}.sticky-nav__pills{flex:1;display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;-webkit-mask-image:linear-gradient(to right,transparent,black 8px,black calc(100% - 28px),transparent);mask-image:linear-gradient(to right,transparent,black 8px,black calc(100% - 28px),transparent)}.sticky-nav__pills::-webkit-scrollbar{display:none}.sticky-nav__pill{flex:none;padding:var(--space-2) var(--space-3);border-radius:999px;font-family:var(--font-body);font-size:.8125rem;font-weight:600;color:var(--muted);white-space:nowrap;transition:color .16s ease,background-color .16s ease}.sticky-nav__pill:hover{color:var(--ink-soft)}.sticky-nav__pill[data-active=true]{color:var(--on-accent);background:var(--accent)}.sticky-nav__actions{flex:none;display:flex;align-items:center;gap:var(--space-1);padding-left:var(--space-2);border-left:1px solid var(--rule)}.sticky-nav__icon-btn{position:relative;display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:var(--radius-sm);color:var(--ink-soft);transition:background-color .16s ease,color .16s ease}.sticky-nav__icon-btn:hover{background:var(--surface)}.sticky-nav__icon-btn[aria-pressed=true]{color:var(--accent);background:var(--surface)}.sticky-nav__badge{position:absolute;top:2px;right:2px;min-width:15px;height:15px;padding:0 3px;border-radius:999px;background:var(--accent);color:var(--paper);font-size:.625rem;font-weight:700;line-height:15px;text-align:center}.search-bar{position:relative;margin:var(--space-3) var(--space-5) 0;animation:panel-open .18s cubic-bezier(.16,1,.3,1) both}.search-bar__input{width:100%;padding:var(--space-3) var(--space-6) var(--space-3) var(--space-4);border:1px solid var(--rule-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:.9375rem;appearance:none;-webkit-appearance:none}.search-bar__input::-webkit-search-cancel-button,.search-bar__input::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.search-bar__input::placeholder{color:var(--muted)}.search-bar__input:focus{border-color:var(--accent)}.search-bar__clear{position:absolute;top:50%;right:var(--space-2);transform:translateY(-50%);display:grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:999px;color:var(--muted)}.search-bar__clear:hover{color:var(--ink);background:var(--paper)}@keyframes panel-open{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.allergen-filter{margin:var(--space-3) 0 0;padding:var(--space-4) var(--space-5) var(--space-2);animation:panel-open .18s cubic-bezier(.16,1,.3,1) both}.allergen-filter__intro{margin:0 0 var(--space-3);font-size:.8125rem;color:var(--muted)}.allergen-filter__row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.allergen-filter__chip{display:inline-flex;align-items:center;gap:.4em;padding:.4rem .75rem .4rem .5rem;border:1px solid var(--rule-strong);border-radius:999px;font-size:.8125rem;font-weight:500;color:var(--ink-soft);background:var(--surface);transition:transform .12s ease,border-color .16s ease,background-color .16s ease,color .16s ease}.allergen-filter__chip:active{transform:scale(.96)}.allergen-filter__chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent);color:var(--on-accent)}.allergen-filter__chip-code{display:inline-grid;place-items:center;width:1.125rem;height:1.125rem;border-radius:999px;background:var(--paper);color:var(--ink-soft);font-size:.6875rem;font-weight:700}.allergen-filter__chip[aria-pressed=true] .allergen-filter__chip-code{background:var(--paper);color:var(--accent)}.allergen-filter__clear{margin-top:var(--space-3);font-size:.8125rem;font-weight:600;color:var(--accent);text-decoration:underline;text-underline-offset:2px}.dish-card{display:flex;gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--rule)}.dish-card:first-child{border-top:none;padding-top:var(--space-2)}.dish-card__photo{flex:none;width:4.75rem;height:4.75rem;border-radius:var(--radius-md);overflow:hidden;background:var(--surface);border:1px solid var(--rule)}.dish-card__photo img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .32s ease}.dish-card__photo img[data-loaded=true]{opacity:1}.dish-card__photo--placeholder{display:grid;place-items:center;color:var(--rule-strong)}.dish-card__body{flex:1;min-width:0}.dish-card__line{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-2)}.dish-card__name{margin:0;font-family:var(--font-display);font-optical-sizing:auto;font-weight:600;font-size:1.0625rem;line-height:1.3;color:var(--ink)}.dish-card__price-group{display:inline-flex;align-items:baseline;flex:1 1 70px;min-width:70px}.dish-card__leader{flex:1 1 12px;min-width:12px;align-self:center;border-bottom:2px dotted var(--rule-strong);transform:translateY(-.3em)}.dish-card__price{flex:none;font-family:var(--font-body);font-variant-numeric:tabular-nums;font-weight:600;font-size:.9375rem;color:var(--ink-soft);white-space:nowrap}.dish-card__price-list{list-style:none;margin:var(--space-1) 0 0;padding:0}.dish-card__price-line{font-family:var(--font-body);font-variant-numeric:tabular-nums;font-size:.875rem;font-weight:600;color:var(--ink-soft);line-height:1.5}.dish-card__description{margin:var(--space-1) 0 0;font-size:.875rem;line-height:1.45;color:var(--muted)}.dish-card__tags{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:var(--space-2)}.dish-card__dietary-tag{padding:.05rem .5rem;border-radius:999px;background:color-mix(in srgb,#4a7c3f 14%,transparent);color:#3d6634;font-size:.6875rem;font-weight:700}@media(prefers-color-scheme:dark){.dish-card__dietary-tag{background:color-mix(in srgb,#7fbf6a 20%,transparent);color:#a9dd9a}}.dish-card__allergens{list-style:none;display:flex;flex-wrap:wrap;gap:.3rem;margin:0;padding:0}.dish-card__zusatzstoffe{margin:0;font-size:.6875rem;color:var(--muted)}.dish-card__allergen{display:inline-grid;place-items:center;min-width:1.125rem;height:1.125rem;padding:0 .2rem;border-radius:999px;background:var(--paper);border:1px solid var(--rule);font-size:.625rem;font-weight:700;color:var(--muted);cursor:default}.category-section{padding:var(--space-6) var(--space-5) 0;scroll-margin-top:var(--nav-height)}.category-section__title{margin:0 0 var(--space-1);font-family:var(--font-display);font-optical-sizing:auto;font-weight:600;font-size:1.375rem;color:var(--ink)}.category-section__list{margin-top:var(--space-2)}.skeleton__block{display:inline-block;border-radius:var(--radius-sm);background:linear-gradient(100deg,var(--rule) 30%,var(--rule-strong) 45%,var(--rule) 60%);background-size:200% 100%;animation:skeleton-shimmer 1.6s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:120% 0}to{background-position:-20% 0}}.skeleton__hero{padding:var(--space-7) var(--space-5) var(--space-6);text-align:center}.skeleton__block--eyebrow{width:5.5rem;height:.75rem;margin-bottom:var(--space-3)}.skeleton__block--title{width:60%;height:2.25rem}.skeleton__nav{display:flex;gap:var(--space-2);padding:0 var(--space-5) var(--space-4)}.skeleton__block--pill{width:5rem;height:1.75rem;border-radius:999px}.skeleton__rows{padding:0 var(--space-5)}.skeleton__row{display:flex;gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--rule)}.skeleton__row:first-child{border-top:none}.skeleton__photo{flex:none;width:4.75rem;height:4.75rem;border-radius:var(--radius-md)}.skeleton__row-text{flex:1;display:flex;flex-direction:column;gap:var(--space-2);justify-content:center}.skeleton__block--line{height:.75rem}.no-results{padding:var(--space-7) var(--space-5);text-align:center}.no-results__text{margin:0 0 var(--space-3);color:var(--muted);font-size:.9375rem}.no-results__text strong{color:var(--ink-soft);font-weight:600}.no-results__reset{font-size:.875rem;font-weight:600;color:var(--accent);text-decoration:underline;text-underline-offset:2px}.footer{margin-top:var(--space-8);padding:var(--space-6) var(--space-5) var(--space-7);border-top:1px solid var(--rule);text-align:center}.footer__legal{font-size:.8125rem}.footer__legal a{color:var(--muted);text-decoration:none}.footer__legal a:hover{color:var(--ink-soft);text-decoration:underline}.footer__dot{margin:0 var(--space-2);color:var(--rule-strong)}.footer__attribution{margin:var(--space-2) 0 0;font-size:.75rem;color:var(--muted)}.full-page-state{min-height:min(70vh,32rem);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-6) var(--space-5);animation:hero-rise .5s cubic-bezier(.16,1,.3,1) both}.full-page-state__icon{color:var(--muted);margin-bottom:var(--space-4)}.full-page-state__title{margin:0 0 var(--space-2);font-family:var(--font-display);font-optical-sizing:auto;font-weight:600;font-size:1.5rem;color:var(--ink)}.full-page-state__description{margin:0;max-width:26rem;color:var(--muted);font-size:.9375rem;line-height:1.5}.full-page-state__action{margin-top:var(--space-5)}.legal-stub{padding:var(--space-7) var(--space-5)}.legal-stub__back{display:inline-block;margin-bottom:var(--space-5);font-size:.8125rem;font-weight:600;color:var(--accent)}.legal-stub__title{margin:0 0 var(--space-4);font-family:var(--font-display);font-optical-sizing:auto;font-weight:600;font-size:1.75rem;color:var(--ink)}.legal-stub__body{color:var(--ink-soft);font-size:.9375rem;line-height:1.65}.legal-stub__note{margin-top:var(--space-5);padding:var(--space-4);border:1px dashed var(--rule-strong);border-radius:var(--radius-sm);color:var(--muted);font-size:.8125rem}@font-face{font-family:Fraunces;font-style:normal;font-weight:400 700;font-display:swap;font-optical-sizing:auto;src:url(/fonts/fraunces-latin.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2")}:root{--ink: #1c1815;--ink-soft: #3a332c;--muted: #746a5d;--paper: #faf6f0;--surface: #ffffff;--rule: #e7ddcd;--rule-strong: #d8cbb5;--backdrop: #ece3d4;--accent: #a8501f;--on-accent: #fff8f0;--font-display: "Fraunces", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4.5rem;--radius-sm: 7px;--radius-md: 11px;--max-width: 640px;--nav-height: 3.25rem;color-scheme:light}@media(prefers-color-scheme:dark){:root{--ink: #f3ece1;--ink-soft: #ddd2c2;--muted: #a89a86;--paper: #17130f;--surface: #1f1a14;--rule: #383025;--rule-strong: #4a4032;--backdrop: #0c0a08;color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}button,input{font:inherit;color:inherit}button{background:none;border:none;padding:0;cursor:pointer}a{color:inherit}.app-shell{max-width:var(--max-width);margin:0 auto;min-height:100vh;background:var(--paper)}@media(min-width:640px){body{background:var(--backdrop)}.app-shell{margin-top:var(--space-6);margin-bottom:var(--space-6);min-height:calc(100vh - 2 * var(--space-6));border-radius:var(--radius-md);border:1px solid var(--rule);overflow:hidden}}.retry-button{padding:var(--space-3) var(--space-5);border:1px solid var(--accent);border-radius:var(--radius-sm);color:var(--accent);font-weight:600;font-size:.875rem;transition:background-color .16s ease,color .16s ease}.retry-button:hover{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}@keyframes hero-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
