:root{--navy: #1c2e53;--navy-tief: #16243f;--navy-tiefer: #101a2e;--navy-hell: #2a457d;--gold: #c5a253;--gold-hell: #d8bb74;--gold-glut: #e8d09a;--tinte: #07071a;--weiss: #ffffff;--linie: rgba(255, 255, 255, .14);--linie-licht: rgba(255, 255, 255, .22);--gedimmt: rgba(255, 255, 255, .62);--radius: 16px;--radius-klein: 4px;--glow-gold: 0 0 24px rgba(197, 162, 83, .45);--glow-gold-stark: 0 0 38px rgba(197, 162, 83, .62);--schatten-weich: 0 4px 20px rgba(0, 0, 0, .28);--schatten-tief: 0 12px 40px rgba(0, 0, 0, .42)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:Helvetica,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.55;color:var(--weiss);-webkit-font-smoothing:antialiased;background:var(--navy-tiefer)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 70% 50% at 50% -8%,rgba(42,69,125,.85),transparent 70%),radial-gradient(ellipse 50% 40% at 88% 12%,rgba(197,162,83,.16),transparent 68%),radial-gradient(ellipse 60% 45% at 8% 92%,rgba(197,162,83,.1),transparent 70%),linear-gradient(180deg,var(--navy) 0%,var(--navy-tiefer) 100%)}.app{display:flex;flex-direction:column;height:100dvh;max-width:820px;margin:0 auto;padding:0 20px}.header{display:flex;align-items:center;gap:14px;padding:22px 4px 18px;border-bottom:1px solid var(--linie)}.avatar-ring{flex:0 0 auto;width:56px;height:56px;border-radius:50%;padding:2px;background:linear-gradient(135deg,var(--gold-glut),var(--gold) 55%,var(--navy-hell));box-shadow:var(--glow-gold),var(--schatten-weich)}.avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;border:2px solid var(--navy-tiefer)}.header-text{flex:1;min-width:0}.wortmarke{display:block;height:40px;width:auto;margin-bottom:2px;filter:drop-shadow(0 0 14px rgba(197,162,83,.3))}.slogan{font-size:14.5px;font-weight:700;letter-spacing:.01em;background:linear-gradient(90deg,var(--gold),var(--gold-glut) 60%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}.weg{padding:18px 0 20px;border-bottom:1px solid var(--linie)}.weg-kopf{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:16px}.weg-label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--gedimmt);margin-bottom:3px}.weg-etappe{font-size:21px;font-weight:700;color:var(--gold-hell);text-shadow:0 0 18px rgba(197,162,83,.55);line-height:1.1}.serie{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:5px 12px;border-radius:100px;font-size:12.5px;font-weight:700;color:var(--gold-glut);background:#c5a25324;border:1px solid rgba(197,162,83,.42)}.serie i{font-style:normal;font-size:13px}.weg-schiene{position:relative;height:3px;background:#00000052;border-radius:2px;margin:0 9px;box-shadow:inset 0 1px 2px #00000073}.weg-fuell{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--gold),var(--gold-glut));border-radius:2px;box-shadow:var(--glow-gold);transition:width .85s cubic-bezier(.22,1,.36,1)}.weg-stationen{list-style:none;margin:-9px 0 0;padding:0;display:flex;justify-content:space-between}.station{display:grid;justify-items:center;gap:7px;width:58px}.station .punkt{width:15px;height:15px;border-radius:50%;background:var(--navy-tiefer);border:2px solid rgba(255,255,255,.26);transition:all .5s cubic-bezier(.22,1,.36,1)}.station.erreicht .punkt{background:linear-gradient(135deg,var(--gold-glut),var(--gold));border-color:var(--gold-glut);box-shadow:var(--glow-gold)}.station.hier .punkt{transform:scale(1.3);animation:pulsieren 2.6s ease-in-out infinite}@keyframes pulsieren{0%,to{box-shadow:0 0 12px #c5a25380}50%{box-shadow:0 0 26px #c5a253f2}}.station em{font-style:normal;font-size:10px;line-height:1.25;text-align:center;color:var(--gedimmt);transition:color .45s ease;-webkit-hyphens:auto;hyphens:auto}.station.erreicht em{color:var(--gold-glut);font-weight:700}.weg-naehe{margin-top:15px;font-size:13.5px;color:var(--gedimmt)}.weg-naehe b{color:var(--gold-glut);font-weight:700}.mitgebracht{margin-top:15px;padding-top:13px;border-top:1px solid var(--linie)}.mitgebracht-label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--gedimmt);margin-bottom:8px}.marken{display:flex;flex-wrap:wrap;gap:6px}.marke{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:100px;font-size:12px;font-weight:700;color:var(--tinte);background:linear-gradient(135deg,var(--gold-glut),var(--gold));border:1px solid var(--gold-hell);box-shadow:0 2px 9px #00000047;animation:aufblitzen .7s cubic-bezier(.22,1,.36,1)}.marke i{font-style:normal}@keyframes aufblitzen{0%{transform:scale(.9);box-shadow:0 0 #c5a25300}45%{transform:scale(1.1);box-shadow:0 0 30px #c5a253d9}to{transform:scale(1)}}.etappe-moment{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .4s ease}.etappe-moment.an{opacity:1}.etappe-flocken{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.flocke{position:absolute;top:34%;width:8px;height:12px;border-radius:1px;animation:rieseln 1.7s cubic-bezier(.3,.7,.5,1) forwards}@keyframes rieseln{0%{opacity:1;transform:translate(0) rotate(0)}to{opacity:0;transform:translate(var(--dx),62vh) rotate(var(--dr))}}.etappe-karte{position:relative;display:grid;justify-items:center;gap:9px;padding:30px 40px;border-radius:var(--radius);text-align:center;max-width:90vw;background:linear-gradient(160deg,#2a457df5,#101a2ef7);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(197,162,83,.55);box-shadow:var(--glow-gold-stark),var(--schatten-tief);transform:scale(.94);transition:transform .5s cubic-bezier(.22,1,.36,1)}.etappe-moment.an .etappe-karte{transform:scale(1)}.etappe-marke{font-size:10.5px;text-transform:uppercase;letter-spacing:.16em;color:var(--gold-glut);font-weight:700}.etappe-name{font-size:30px;font-weight:700;line-height:1.1;letter-spacing:-.02em;background:linear-gradient(90deg,var(--gold),var(--gold-glut));-webkit-background-clip:text;background-clip:text;color:transparent}.etappe-satz{margin:0;font-size:15px;line-height:1.5;color:#ffffffd9;max-width:34ch}.chat{display:flex;flex-direction:column;flex:1;min-height:0;position:relative}.messages{flex:1;overflow-y:auto;padding:22px 2px;display:flex;flex-direction:column;gap:12px}.zeile{display:flex;align-items:flex-end;gap:9px}.zeile.user{justify-content:flex-end}.bubble-avatar{flex:0 0 auto;width:32px;height:32px;border-radius:50%;object-fit:cover;margin-bottom:2px;border:1.5px solid rgba(197,162,83,.6);box-shadow:0 0 14px #c5a25359}.bubble{position:relative;max-width:86%;padding:14px 18px;border-radius:var(--radius);line-height:1.6;white-space:pre-wrap;font-size:15.5px;animation:auf .4s cubic-bezier(.22,1,.36,1)}@keyframes auf{0%{opacity:0;transform:translateY(10px) scale(.98)}}.bubble.user{align-self:flex-end;background:linear-gradient(135deg,var(--gold-glut),var(--gold));color:var(--tinte);font-weight:700;border-bottom-right-radius:var(--radius-klein);box-shadow:var(--glow-gold),var(--schatten-weich)}.bubble.assistant{align-self:flex-start;background:linear-gradient(160deg,#2a457d8c,#101a2ebf);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--linie);border-top-color:var(--linie-licht);border-bottom-left-radius:var(--radius-klein);box-shadow:var(--schatten-tief)}.markdown{white-space:normal}.markdown>*:first-child{margin-top:0}.markdown>*:last-child{margin-bottom:0}.markdown p{margin:0 0 10px}.markdown strong{font-weight:700;color:var(--gold-glut);text-shadow:0 0 12px rgba(197,162,83,.4)}.markdown em{font-style:italic}.markdown ul,.markdown ol{margin:0 0 10px;padding-left:20px}.markdown li{margin-bottom:5px}.markdown li::marker{color:var(--gold);font-weight:700}.markdown h1,.markdown h2,.markdown h3,.markdown h4{font-size:16.5px;font-weight:700;margin:16px 0 8px;line-height:1.35;background:linear-gradient(90deg,var(--gold-glut),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}.markdown a{color:var(--gold-glut);text-decoration:underline;text-underline-offset:2px}.markdown code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em;background:#00000059;border:1px solid var(--linie);border-radius:var(--radius-klein);padding:1px 5px}.markdown pre{background:#0006;border:1px solid var(--linie);border-radius:var(--radius-klein);padding:12px 14px;overflow-x:auto;margin:0 0 10px}.markdown pre code{background:none;border:none;padding:0}.markdown blockquote{border-left:3px solid var(--gold);box-shadow:-6px 0 18px -8px #c5a253b3;padding-left:14px;margin:0 0 10px;color:var(--gedimmt);font-style:italic}.markdown hr{border:none;border-top:1px solid var(--linie);margin:14px 0}.markdown table{border-collapse:collapse;width:100%;margin:0 0 10px;font-size:14.5px;display:block;overflow-x:auto}.markdown th,.markdown td{border:1px solid var(--linie);padding:7px 11px;text-align:left}.markdown th{background:#ffffff12;font-weight:700}.markdown.streamt>*:last-child:after{content:"";display:inline-block;width:2px;height:1.05em;margin-left:3px;vertical-align:text-bottom;background:var(--gold-glut);box-shadow:0 0 10px #c5a253e6;animation:marke 1s steps(2) infinite}@keyframes marke{0%,50%{opacity:1}51%,to{opacity:0}}.typing{display:flex;gap:6px;padding:18px}.typing span{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px #c5a253cc;animation:blinken 1.2s infinite both}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes blinken{0%,80%,to{opacity:.25;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}.quick-prompts{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 6px}.quick{border:1px solid var(--linie);background:#ffffff0d;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--weiss);border-radius:100px;padding:9px 16px;font:inherit;font-size:14px;cursor:pointer;transition:all .25s cubic-bezier(.22,1,.36,1)}.quick:hover:not(:disabled){background:linear-gradient(135deg,var(--gold-glut),var(--gold));border-color:var(--gold-hell);color:var(--tinte);font-weight:700;transform:translateY(-2px);box-shadow:var(--glow-gold),var(--schatten-weich)}.quick:disabled{opacity:.4;cursor:default}.toast{position:fixed;left:50%;top:14px;transform:translate(-50%);background:linear-gradient(135deg,var(--gold-glut),var(--gold));color:var(--tinte);font-weight:700;font-size:14.5px;padding:11px 20px;border-radius:100px;box-shadow:var(--glow-gold-stark),var(--schatten-tief);animation:hoch .5s cubic-bezier(.22,1,.36,1);white-space:nowrap;z-index:5}@keyframes hoch{0%{opacity:0;transform:translate(-50%,-16px) scale(.92)}}.error{align-self:center;color:#ffd9d7;background:#a4262c47;border:1px solid rgba(255,138,133,.45);border-radius:var(--radius);padding:10px 16px;font-size:14px;box-shadow:0 0 22px #a4262c4d}.composer{display:flex;gap:10px;padding:12px 0 22px}.composer textarea{flex:1;resize:none;min-height:52px;border:1px solid var(--linie);border-top-color:var(--linie-licht);border-radius:var(--radius);padding:14px 16px;font:inherit;font-size:15.5px;background:#101a2e99;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--weiss);outline:none;box-shadow:var(--schatten-weich);transition:border-color .25s ease,box-shadow .25s ease}.composer textarea::placeholder{color:#ffffff6b}.composer textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c5a2532e,var(--glow-gold)}.composer button{border:none;border-radius:var(--radius);padding:0 28px;background:linear-gradient(135deg,var(--gold-glut),var(--gold));color:var(--tinte);font:inherit;font-size:15px;font-weight:700;cursor:pointer;box-shadow:var(--glow-gold),var(--schatten-weich);transition:all .25s cubic-bezier(.22,1,.36,1)}.composer button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--glow-gold-stark),var(--schatten-tief)}.composer button:active:not(:disabled){transform:translateY(0)}.composer button:disabled{opacity:.4;box-shadow:none;cursor:default}@media(max-width:560px){.app{padding:0 14px}.bubble{max-width:92%}.toast{white-space:normal;max-width:88%;text-align:center}.header{padding:14px 2px 12px}.wortmarke{height:31px}.slogan{font-size:13px}.avatar-ring{width:46px;height:46px}.bubble-avatar{width:26px;height:26px}.weg{padding:12px 0 14px}.weg-kopf{margin-bottom:13px}.weg-etappe{font-size:18px}.serie{font-size:11.5px;padding:4px 10px}.station{width:46px}.station em{font-size:9px}.weg-naehe{margin-top:13px;font-size:12.5px}.messages{padding:16px 2px}.marken{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.marken::-webkit-scrollbar{display:none}.marke{flex:0 0 auto}.etappe-karte{padding:24px 26px}.etappe-name{font-size:25px}.etappe-satz{font-size:14px}.quick{font-size:13.5px;padding:8px 14px}.composer{padding:10px 0 16px}.composer textarea{font-size:15px;padding:13px 14px}.composer button{padding:0 20px;font-size:14.5px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
