:root{--farbe-hintergrund: #0f1a0f;--farbe-karte: #1a2b1a;--farbe-akzent: #c8e86d;--farbe-akzent-dunkel: #9ab84a;--farbe-text: #f0f4e8;--farbe-text-gedimmt: #8a9e7a;--farbe-rand: #2a3d2a;--farbe-hervorhebung: #c8e86d;--farbe-auf-akzent: #0f1a0f;--farbe-akzent-text: #c8e86d;--farbe-hervorhebung-text: #c8e86d;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--farbe-hintergrund)}body{background:linear-gradient(160deg,var(--farbe-hintergrund) 0%,var(--farbe-karte) 50%,var(--farbe-hintergrund) 100%);min-height:100dvh;color:var(--farbe-text);font-family:DM Sans,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;overscroll-behavior:none}#root{min-height:100dvh;max-width:430px;margin:0 auto;display:flex;flex-direction:column}@media (min-width: 640px){#root{max-width:640px}}button,input,select,textarea{font-family:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.check-input:focus-visible+.check-box{outline:2px solid var(--farbe-akzent);outline-offset:2px}h1,h2,h3{font-family:Playfair Display,Georgia,serif;font-weight:900}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.card{background:var(--farbe-karte);border:1px solid color-mix(in srgb,var(--farbe-hervorhebung) 18%,transparent);border-radius:12px;padding:16px;box-shadow:0 4px 18px #00000059}.task-card{border-radius:16px;padding:18px;box-shadow:0 8px 32px #0000002e}.btn-primary{background:var(--farbe-akzent);color:var(--farbe-auf-akzent);border:none;border-radius:8px;padding:12px 24px;font-family:DM Sans,sans-serif;font-weight:500;font-size:14px;cursor:pointer;width:100%;transition:opacity .15s}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--farbe-akzent-text);border:1px solid var(--farbe-akzent);border-radius:8px;padding:12px 24px;font-family:DM Sans,sans-serif;font-weight:500;font-size:14px;cursor:pointer;width:100%;transition:opacity .15s}.btn-ghost{background:var(--farbe-karte);color:var(--farbe-text);border:1px solid var(--farbe-rand);border-radius:8px;padding:12px 24px;font-family:DM Sans,sans-serif;font-weight:500;font-size:14px;cursor:pointer;width:100%}.form-label{font-family:DM Sans,sans-serif;font-weight:500;font-size:11px;color:var(--farbe-text-gedimmt);text-transform:uppercase;letter-spacing:.04em;display:block;margin-bottom:6px}.form-input{background:var(--farbe-hintergrund);border:1px solid var(--farbe-rand);border-radius:8px;padding:10px 12px;font-family:DM Sans,sans-serif;font-weight:300;font-size:16px;color:var(--farbe-text);width:100%}.form-input:focus{outline:none;border-color:var(--farbe-akzent)}.gps-indicator{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.gps-indicator.success{background:color-mix(in srgb,var(--farbe-hervorhebung) 15%,transparent);border:1px solid var(--farbe-hervorhebung)}.gps-indicator.error{background:#e24b4a26;border:1px solid #e24b4a;cursor:pointer}@keyframes pointsPopIn{0%{transform:scale(.4);opacity:0}55%{transform:scale(1.3);opacity:1}to{transform:scale(1);opacity:1}}.points-badge{display:inline-block;color:var(--farbe-hervorhebung-text);font-size:15px;font-weight:700}.points-badge.pop{animation:pointsPopIn .6s cubic-bezier(.34,1.56,.64,1) both}.celebration{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none}.celebration-piece{position:absolute;left:0;top:0;opacity:0;animation:confettiBurst .9s cubic-bezier(.15,.7,.3,1) forwards}@keyframes confettiBurst{0%{transform:rotate(var(--angle)) translate(0) scale(.4);opacity:1}70%{opacity:1}to{transform:rotate(var(--angle)) translate(var(--reach)) translateY(14px) rotate(160deg) scale(1);opacity:0}}@keyframes solvedGlow{0%{box-shadow:0 0 color-mix(in srgb,var(--farbe-akzent) 55%,transparent),0 4px 18px #00000059}to{box-shadow:0 0 0 14px color-mix(in srgb,var(--farbe-akzent) 0%,transparent),0 4px 18px #00000059}}.solved-glow{animation:solvedGlow .9s ease-out 1}@keyframes checkDraw{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}.check-draw path{stroke-dasharray:24;animation:checkDraw .45s .1s ease-out both}@keyframes feedbackShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.feedback-shake{animation:feedbackShake .4s ease-in-out 1}@keyframes rewardHalo{0%,to{transform:scale(.92);opacity:.55}50%{transform:scale(1.06);opacity:.85}}@keyframes rewardBounceIn{0%{transform:scale(.3) rotate(-12deg);opacity:0}60%{transform:scale(1.12) rotate(4deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@keyframes rewardFadeUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes hintBulbIn{0%{transform:translateY(-14px) scale(.6);opacity:0}70%{transform:translateY(2px) scale(1.06);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}@keyframes hintSwitchOn{0%{opacity:0;transform:scale(.7)}25%{opacity:.7}35%{opacity:.15}50%{opacity:.8}60%{opacity:.35}to{opacity:.7;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.celebration{display:none}.solved-glow,.check-draw path,.feedback-shake,.points-badge.pop,.reward-halo,.reward-gift,.reward-fade-up,.hint-glow,.hint-bulb{animation:none!important}}.hint-box{background:color-mix(in srgb,var(--farbe-hervorhebung) 10%,transparent);border:1px solid color-mix(in srgb,var(--farbe-hervorhebung) 30%,transparent);border-radius:12px;padding:14px}.nav-link{background:var(--farbe-akzent);color:var(--farbe-auf-akzent);border-radius:8px;padding:10px 14px;display:inline-flex;align-items:center;gap:8px;font-weight:500;font-size:13px;text-decoration:none}
