:root{--bg:#eef1ee;--bg-soft:#e2e7e1;--surface:#ffffff;--border:#c9d1c6;--text:#171b17;--text-dim:#5b655a;--accent:#2f9480;--accent-ink:#ffffff;--donau:#3f6b91;--party:#b73a4c;--spark:#c96a2e;--ilz:#4a3626;--radius:3px;--font-display: Georgia, "Iowan Old Style", "Palatino Linotype", "Times New Roman", serif;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Consolas, monospace;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg:#10151a;--bg-soft:#171e24;--surface:#1a2229;--border:#28333c;--text:#eef2f0;--text-dim:#93a19c;--accent:#4fc2a6;--accent-ink:#0b1613;--donau:#82a8cc;--party:#e2637a;--spark:#f0a06a;--ilz:#a8876a}}:root[data-theme=dark]{--bg:#10151a;--bg-soft:#171e24;--surface:#1a2229;--border:#28333c;--text:#eef2f0;--text-dim:#93a19c;--accent:#4fc2a6;--accent-ink:#0b1613;--donau:#82a8cc;--party:#e2637a;--spark:#f0a06a;--ilz:#a8876a}:root[data-theme=light]{--bg:#eef1ee;--bg-soft:#e2e7e1;--surface:#ffffff;--border:#c9d1c6;--text:#171b17;--text-dim:#5b655a;--accent:#2f9480;--accent-ink:#ffffff;--donau:#3f6b91;--party:#b73a4c;--spark:#c96a2e;--ilz:#4a3626}*{box-sizing:border-box}html,body{padding:0;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit}.wrap{max-width:640px;margin:0 auto;padding:0 18px}.hero{position:relative;overflow:hidden;min-height:min(86vh,720px);display:flex;flex-direction:column;background:#0b1210}.hero-media{position:absolute;inset:0}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;filter:saturate(1.08) contrast(1.06) brightness(.92);transform:scale(1.08)}.hero-grade{position:absolute;inset:0;background:radial-gradient(120% 90% at 12% 105%,rgba(233,148,92,.22),transparent 58%),radial-gradient(120% 90% at 105% -10%,rgba(63,174,148,.2),transparent 55%)}.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,#080d0b33,#080d0b47 38%,#080d0bdb 90%,#080d0bf5)}.hero-vignette{position:absolute;inset:0;background:radial-gradient(120% 85% at 50% 30%,transparent 55%,rgba(4,7,6,.5) 100%)}.top{position:sticky;top:0;z-index:30;border-bottom:1px solid transparent;background:transparent;transition:background .25s,border-color .25s}.top .row{display:flex;align-items:center;justify-content:space-between;padding:16px 0}.top .mark{font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:#f4f7f4;transition:color .25s}.top .mark .dot{color:#6fd9bd}.top .actions{display:flex;align-items:center;gap:10px}.top .submit-link{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;text-decoration:none;border:1px solid rgba(244,247,244,.35);padding:6px 10px;border-radius:var(--radius);color:#f4f7f4e6;transition:border-color .15s,color .15s}.top .submit-link:hover{border-color:#6fd9bd;color:#6fd9bd}.theme-toggle{border:1px solid rgba(244,247,244,.35);background:transparent;color:#f4f7f4e6;border-radius:var(--radius);width:30px;height:30px;cursor:pointer;font-size:.85rem;transition:border-color .15s,color .15s;line-height:1}.theme-toggle:hover{border-color:#6fd9bd;color:#6fd9bd}.top.solid{background:var(--bg);border-bottom-color:var(--border)}.top.solid .mark{color:var(--text)}.top.solid .mark .dot{color:var(--accent)}.top.solid .submit-link{color:var(--text-dim);border-color:var(--border)}.top.solid .submit-link:hover{color:var(--accent);border-color:var(--accent)}.top.solid .theme-toggle{color:var(--text-dim);border-color:var(--border)}.top.solid .theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.hero-content{position:relative;z-index:4;flex:1;display:flex;flex-direction:column;justify-content:center;padding:26px 0 30px}.hero .kicker{font-family:var(--font-mono);font-size:.74rem;font-weight:700;color:#7fe0c5;text-transform:uppercase;letter-spacing:.12em;margin-bottom:14px;display:flex;align-items:center;gap:8px}.hero .kicker:before{content:"";width:6px;height:6px;border-radius:50%;background:#7fe0c5}.hero h1{font-family:var(--font-display);font-weight:700;color:#fbfdfb;font-size:clamp(2.3rem,8vw,3.6rem);line-height:1.04;margin:0 0 18px;text-wrap:balance;letter-spacing:-.02em;max-width:11ch;text-shadow:0 2px 24px rgba(0,0,0,.25)}.hero-welcome{font-family:var(--font-display);font-style:italic;font-size:1.05rem;color:#f4f7f4db;max-width:34ch;margin:0 0 30px;line-height:1.5}.scroll-cue{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;font-family:var(--font-mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:#fff;text-decoration:none;padding-bottom:3px;border-bottom:1px solid rgba(244,247,244,.4)}.scroll-cue .arrow{display:inline-block;animation:pau-bob 1.8s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.scroll-cue .arrow{animation:none}}@keyframes pau-bob{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.hero-credit{position:relative;z-index:4;font-family:var(--font-mono);font-size:.63rem;color:#f4f7f48c;padding:0 18px 14px;max-width:640px;margin:0 auto;width:100%}.hero-credit a{color:#f4f7f4bf;text-decoration:underline}.tonight{padding:22px 0 6px}.tonight-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.tonight-head h2{font-family:var(--font-display);font-size:1.3rem;margin:0}.tonight-head .sub{font-family:var(--font-mono);font-size:.72rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.tonight-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}.tonight-row::-webkit-scrollbar{display:none}.tcard{flex:0 0 auto;width:210px;border-radius:var(--radius);padding:16px;position:relative;color:#fff;overflow:hidden;border:1px solid rgba(0,0,0,.08);text-decoration:none;display:block;transition:transform .15s}.tcard:hover{transform:translateY(-2px)}.tcard.cat-party{background:linear-gradient(150deg,#b73a4c,#7c1f2c)}.tcard.cat-konzert{background:linear-gradient(150deg,#2f9480,#1c5c4f)}.tcard.cat-film{background:linear-gradient(150deg,#6a4fa8,#3a2b66)}.tcard.cat-kultur{background:linear-gradient(150deg,#3f6b91,#223c52)}.tcard .tc-time{font-family:var(--font-mono);font-size:.78rem;opacity:.85;font-variant-numeric:tabular-nums}.tcard h3{font-family:var(--font-display);font-size:1.05rem;margin:8px 0 6px;line-height:1.25}.tcard .tc-venue{font-size:.78rem;opacity:.85}.tcard .tc-badges{display:flex;gap:6px;margin-top:12px}.tcard .tc-badge{font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;background:#ffffff2e;padding:3px 7px;border-radius:99px}.filterbar{background:var(--bg);border-bottom:1px solid var(--border);padding:16px 0 12px;margin-top:18px}.search{width:100%;padding:9px 12px;margin-bottom:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-body);font-size:.88rem}.search::placeholder{color:var(--text-dim)}.search:focus{outline:2px solid var(--accent);outline-offset:1px}.chiprow{display:flex;gap:7px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}.chiprow::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;font-family:var(--font-mono);font-size:.76rem;padding:6px 12px;border-radius:99px;border:1px solid var(--border);background:var(--surface);color:var(--text-dim);cursor:pointer;white-space:nowrap;transition:all .15s}.chip:hover{border-color:var(--accent);color:var(--text)}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.toggles{display:flex;gap:16px;padding-top:8px;flex-wrap:wrap}.toggle{display:flex;align-items:center;gap:7px;cursor:pointer;user-select:none;font-size:.82rem;color:var(--text-dim);background:none;border:none;padding:0;font-family:var(--font-body)}.toggle .sw{width:30px;height:17px;border-radius:99px;background:var(--bg-soft);border:1px solid var(--border);position:relative;transition:background .15s;flex:0 0 auto}.toggle .sw:after{content:"";position:absolute;top:1px;left:1px;width:13px;height:13px;border-radius:50%;background:var(--text-dim);transition:transform .15s,background .15s}.toggle.on .sw{background:var(--accent);border-color:var(--accent)}.toggle.on .sw:after{transform:translate(13px);background:var(--accent-ink)}.toggle.on span.lbl{color:var(--text);font-weight:600}.section-label{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:26px 0 12px;display:flex;align-items:center;gap:8px}.section-label:after{content:"";height:1px;background:var(--border);flex:1}.section-label.first{margin-top:22px}.featured-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}.featured-row::-webkit-scrollbar{display:none}.feat-card{flex:0 0 auto;width:230px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;position:relative;overflow:hidden;text-decoration:none;display:block;transition:border-color .15s,transform .15s}.feat-card:hover{border-color:var(--spark);transform:translateY(-2px)}.feat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--spark)}.feat-tag{font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--spark);font-weight:700;margin-bottom:8px;display:block}.feat-card h3{font-family:var(--font-display);font-size:1.05rem;margin:0 0 6px;line-height:1.25}.feat-meta{font-family:var(--font-mono);font-size:.76rem;color:var(--text-dim)}.daygroup{margin-bottom:4px}.day-head{display:flex;align-items:baseline;gap:9px;margin:22px 0 10px}.day-head .d-name{font-family:var(--font-display);font-weight:700;font-size:1.05rem}.day-head .d-date{font-family:var(--font-mono);font-size:.78rem;color:var(--text-dim);font-variant-numeric:tabular-nums}.card{display:flex;gap:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:9px;overflow:hidden;position:relative;opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease,box-shadow .2s,border-color .2s;text-decoration:none}.card.in{opacity:1;transform:translateY(0)}.card:hover{border-color:var(--accent);box-shadow:0 6px 20px -8px #00000040}.card .spine{width:4px;flex:0 0 auto}.card.cat-party .spine{background:var(--party)}.card.cat-konzert .spine{background:var(--accent)}.card.cat-kultur .spine{background:var(--donau)}.card.cat-community .spine{background:var(--ilz)}.card.cat-markt .spine{background:var(--spark)}.card.cat-film .spine{background:var(--party)}.card.cat-bildung .spine,.card.cat-sport .spine,.card.cat-sonstiges .spine{background:var(--text-dim)}.card .time{flex:0 0 62px;padding:12px 0 12px 12px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:.82rem;display:flex;flex-direction:column;justify-content:center;gap:2px}.card .time b{color:var(--text);font-size:.95rem}.card .body{flex:1;padding:12px 14px 12px 12px;min-width:0}.card .top-row{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.card h4{font-family:var(--font-body);font-weight:700;font-size:.95rem;margin:0 0 4px;line-height:1.3}.card .venue{font-size:.82rem;color:var(--text-dim)}.card .venue .cat{text-transform:capitalize}.card .venue .sep{margin:0 5px;opacity:.5}.badges{display:flex;gap:5px;flex:0 0 auto;align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}.badge{font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.04em;padding:3px 7px;border-radius:99px;white-space:nowrap;border:1px solid transparent}.badge.student{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);font-weight:700}.badge.tipp{background:color-mix(in srgb,var(--spark) 18%,transparent);color:var(--spark);border-color:color-mix(in srgb,var(--spark) 40%,transparent)}.price{font-family:var(--font-mono);font-size:.8rem;margin-top:7px;color:var(--text);font-variant-numeric:tabular-nums}.price.free{color:var(--accent);font-weight:700}.empty{text-align:center;padding:40px 0;color:var(--text-dim);font-size:.9rem;display:none}.empty.show{display:block}footer.site{border-top:1px solid var(--border);margin-top:40px;padding:22px 0 34px;font-family:var(--font-mono);font-size:.72rem;color:var(--text-dim)}footer.site .flinks{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:10px}footer.site a{text-decoration:none}footer.site a:hover{color:var(--accent)}.proto-note{margin-top:14px;padding-top:14px;border-top:1px dashed var(--border);font-style:italic}@media(min-width:560px){.card .time{flex-basis:76px}}
