*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--green:#30624a;--green-dark:#1e3829;--green-mid:#487a61;--green-pale:#c4d9ce;--green-ultra:#eef5f1;--green-25:#f4f9f6;--accent:#c4a460;--accent-dark:#7a6130;--accent-pale:#faf5e8;--linen:#fdfaf6;--linen-100:#ede8e1;--linen-200:#ddd8d0;--linen-300:#c8c2ba;--text:#1c1a16;--text-mid:#4a4540;--text-light:#8a8480;--white:#fff;--heading:#1e3829;--on-dark:#fff;--radius-sm:10px;--radius:18px;--radius-lg:24px;--radius-xl:32px;--radius-full:9999px;--shadow-sm:0 2px 8px #1a2c2212, 0 1px 3px #1a2c220a;--shadow:0 6px 24px #1a2c2217, 0 2px 8px #1a2c220d;--shadow-lg:0 16px 48px #1a2c221f, 0 4px 16px #1a2c220f;--shadow-green:0 8px 28px #30624a4d, 0 2px 8px #30624a29;--nav-w:220px;--content-max:680px;font-family:DM Sans,system-ui,sans-serif}body{background:var(--linen);color:var(--text);min-height:100dvh;margin:0}#root{all:unset;display:block}button{cursor:pointer;border:none;outline:none;font-family:DM Sans,sans-serif}.app{flex-direction:column;min-height:100dvh;display:flex}.header{background:var(--green-dark);z-index:200;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex;position:sticky;top:0}.header-logo{color:var(--on-dark);letter-spacing:-.3px;white-space:nowrap;align-items:center;gap:7px;font-family:Playfair Display,serif;font-size:19px;font-weight:600;display:flex}.header-logo em{color:var(--accent);font-style:italic}.header-back{border-radius:var(--radius-full);color:#ffffffd9;white-space:nowrap;background:#ffffff1f;border:1px solid #ffffff26;padding:7px 14px;font-size:13px;font-weight:600;transition:background .2s}.header-back:hover{background:#ffffff38}.header-points{color:var(--accent);background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:var(--radius-full);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);white-space:nowrap;padding:5px 12px;font-size:13px;font-weight:700}.layout{flex:1;min-height:0;display:flex}.sidebar-nav{display:none}.bottom-nav{background:var(--white);padding:8px 4px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:150;border-top:1px solid var(--linen-100);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 16px #1a2c2214}.nav-btn{border-radius:var(--radius-sm);background:0 0;flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;padding:6px 4px;transition:background .15s;display:flex}.nav-btn.active{background:var(--green-ultra)}.nav-btn span:first-child{font-size:19px;line-height:1}.nav-label{color:var(--text-light);letter-spacing:0;white-space:nowrap;font-size:9px;font-weight:600;line-height:1}.nav-btn.active .nav-label{color:var(--green)}.screen{max-width:var(--content-max);flex:1;width:100%;margin:0 auto;padding:24px 18px 110px}@media (width>=760px){.header{padding:16px 32px}.layout{flex-direction:row}.bottom-nav{display:none}.sidebar-nav{width:var(--nav-w);background:var(--white);border-right:1px solid var(--linen-100);flex-direction:column;flex-shrink:0;gap:4px;height:calc(100dvh - 53px);padding:28px 14px;display:flex;position:sticky;top:53px;overflow-y:auto}.sidebar-nav .nav-btn{border-radius:var(--radius-sm);flex-direction:row;justify-content:flex-start;gap:10px;width:100%;padding:10px 14px}.sidebar-nav .nav-btn span:first-child{font-size:18px}.sidebar-nav .nav-label{letter-spacing:0;font-size:13px;font-weight:600}.sidebar-nav .nav-btn.active{background:var(--green-ultra)}.sidebar-nav .nav-btn.active .nav-label{color:var(--heading)}.sidebar-brand{color:var(--text-light);border-bottom:1px solid var(--linen-100);margin-bottom:12px;padding:0 14px 16px;font-family:Playfair Display,serif;font-size:13px;font-weight:500}.screen{max-width:820px;margin:0 auto;padding:36px 40px 60px}.group-grid{grid-template-columns:1fr}.game-grid{grid-template-columns:repeat(3,1fr)}.stats-row{grid-template-columns:repeat(4,1fr)}.badge-grid{grid-template-columns:repeat(4,1fr)!important}}@media (width>=1100px){.game-grid{grid-template-columns:repeat(4,1fr)}.screen{max-width:900px}}@media (width>=1500px){.screen{max-width:960px;padding-top:48px}}.hero{text-align:center;padding:36px 0 28px}.hero-emoji{margin-bottom:12px;font-size:52px;display:block}.hero h1{color:var(--heading);margin-bottom:10px;font-family:Playfair Display,serif;font-size:clamp(28px,5vw,40px);font-weight:600;line-height:1.15}.hero h1 em{color:var(--green);font-style:italic}.hero p{color:var(--text-mid);max-width:460px;margin:0 auto;font-size:15px;line-height:1.65}.group-grid{grid-template-columns:1fr;gap:12px;margin-top:20px;display:grid}.group-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1.5px solid var(--linen-100);text-align:left;align-items:center;gap:16px;width:100%;padding:20px 22px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.group-card:hover{box-shadow:var(--shadow);border-color:var(--green-pale);transform:translateY(-2px)}.group-card-emoji{flex-shrink:0;font-size:40px}.group-card-info h2{margin-bottom:2px;font-family:Playfair Display,serif;font-size:19px;font-weight:600}.group-card-info p{color:var(--text-light);font-size:12px}.group-card-arrow{color:var(--linen-300);margin-left:auto;font-size:18px;transition:color .2s}.group-card:hover .group-card-arrow{color:var(--green)}.section-title{color:var(--heading);align-items:center;gap:7px;margin:28px 0 10px;font-family:Playfair Display,serif;font-size:17px;font-weight:600;display:flex}.section-title span{font-family:sans-serif;font-size:18px}.affirmation-banner{border-radius:var(--radius);color:var(--on-dark);box-shadow:var(--shadow-green);cursor:pointer;-webkit-user-select:none;user-select:none;text-align:left;background:linear-gradient(135deg, var(--green-dark) 0%, var(--green) 100%);width:100%;padding:22px 26px;font-family:DM Sans,sans-serif;font-size:17px;font-weight:500;line-height:1.55;position:relative;overflow:hidden}.affirmation-banner:before{content:"";background:color-mix(in srgb, var(--accent) 12%, transparent);pointer-events:none;border-radius:50%;width:220px;height:220px;position:absolute;top:-50%;right:-15%}.affirmation-text{z-index:1;font-size:17px;font-style:italic;position:relative}.affirmation-hint{z-index:1;opacity:.6;letter-spacing:.5px;text-transform:uppercase;margin-top:10px;font-size:10px;font-weight:500;position:relative}.challenge-list{flex-direction:column;gap:10px;display:flex}.challenge-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1.5px solid var(--linen-100);text-align:left;align-items:center;gap:12px;width:100%;padding:14px 18px;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.challenge-card:hover{box-shadow:var(--shadow);border-color:var(--green-pale);transform:translateY(-2px)}.challenge-card.done{opacity:.42}.challenge-emoji{flex-shrink:0;font-size:30px}.challenge-info{flex:1;min-width:0}.challenge-info h3{color:var(--heading);margin-bottom:2px;font-size:14px;font-weight:700}.challenge-info p{color:var(--text-mid);font-size:11px;line-height:1.4}.challenge-points{border-radius:var(--radius-full);background:var(--accent-pale);color:var(--accent-dark);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:700}.challenge-done-badge{flex-shrink:0;font-size:20px}.game-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.game-card{background:var(--white);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow-sm);border:1.5px solid var(--linen-100);width:100%;padding:16px 12px;transition:transform .2s,box-shadow .2s,border-color .2s}.game-card:hover{box-shadow:var(--shadow);border-color:var(--green-pale);transform:translateY(-2px)}.game-emoji{margin-bottom:7px;font-size:30px}.game-card h3{color:var(--heading);margin-bottom:3px;font-size:12px;font-weight:700;line-height:1.3}.game-card p{color:var(--text-mid);font-size:10px;line-height:1.4}.game-dauer{border-radius:var(--radius-full);background:var(--green-ultra);color:var(--green);letter-spacing:.3px;margin-top:7px;padding:3px 9px;font-size:9px;font-weight:600;display:inline-block}.overlay{z-index:300;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#121c168c;justify-content:center;align-items:flex-end;padding:16px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@media (width>=600px){.overlay{align-items:center}.modal{max-height:85vh;border-radius:var(--radius-lg)!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--white);border-radius:var(--radius-lg) var(--radius-lg) var(--radius) var(--radius);width:100%;max-width:560px;max-height:88dvh;padding:28px 22px 32px;animation:.3s cubic-bezier(.34,1.46,.64,1) slideUp;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(60px)}to{opacity:1;transform:none}}@keyframes slideDown{0%{opacity:0;transform:translate(-50%)translateY(-12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.modal-emoji{text-align:center;margin-bottom:10px;font-size:42px;display:block}.modal h2{text-align:center;color:var(--heading);margin-bottom:7px;font-family:Playfair Display,serif;font-size:21px;font-weight:600}.modal-desc{text-align:center;color:var(--text-mid);margin-bottom:22px;font-size:13px;line-height:1.5}.step-list{flex-direction:column;gap:9px;margin-bottom:22px;display:flex}.step-item{background:var(--green-25);border-radius:var(--radius-sm);border:1px solid var(--green-ultra);align-items:flex-start;gap:11px;padding:12px 14px;display:flex}.step-num{color:#fff;background:var(--green);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:flex}.step-text{color:var(--text);padding-top:2px;font-size:13px;font-weight:500;line-height:1.5}.btn-primary{border-radius:var(--radius-full);color:#fff;background:var(--green);width:100%;box-shadow:0 2px 0 var(--green-dark), var(--shadow-sm);padding:14px;font-size:15px;font-weight:700;transition:transform .15s,opacity .15s,box-shadow .15s;display:block}.btn-primary:hover{box-shadow:0 4px 0 var(--green-dark), var(--shadow-green);transform:translateY(-1px)}.btn-primary:active{box-shadow:0 0 0 var(--green-dark);transform:translateY(1px)}.btn-secondary{border-radius:var(--radius-full);background:var(--linen-100);width:100%;color:var(--text-mid);border:1px solid var(--linen-200);margin-top:10px;padding:12px;font-size:13px;font-weight:600;transition:background .2s;display:block}.btn-secondary:hover{background:var(--linen-200)}.progress-bar-wrap{background:var(--linen-100);border-radius:var(--radius-full);height:8px;margin:6px 0 20px;overflow:hidden}.progress-bar-fill{border-radius:var(--radius-full);background:linear-gradient(90deg, var(--green-mid), var(--green));height:100%;transition:width .7s cubic-bezier(.4,0,.2,1)}.stats-row{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:10px;display:grid}.stat-card{background:var(--white);border-radius:var(--radius);text-align:center;box-shadow:var(--shadow-sm);border:1.5px solid var(--linen-100);padding:16px 10px}.stat-val{color:var(--green);font-size:26px;font-weight:800;line-height:1.1}.stat-label{color:var(--text-light);margin-top:3px;font-size:11px;font-weight:600}.mood-chart-wrap{background:var(--white);border:1.5px solid var(--linen-100);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px}.mood-chart-bars{align-items:flex-end;gap:5px;height:64px;margin-bottom:6px;display:flex}.mood-bar-col{flex-direction:column;flex:1;align-items:center;gap:3px;display:flex}.mood-bar-emoji{font-size:12px;line-height:1}.mood-bar{border-radius:4px 4px 2px 2px;width:100%;min-height:4px;transition:height .4s}.mood-bar-date{color:var(--text-light);writing-mode:vertical-rl;font-size:8px;font-weight:600;transform:rotate(180deg)}.journal-textarea{border:2px solid var(--linen-200);border-radius:var(--radius);width:100%;min-height:160px;color:var(--text);background:var(--white);resize:vertical;box-shadow:var(--shadow-sm);outline:none;padding:16px 18px;font-family:DM Sans,sans-serif;font-size:15px;line-height:1.65;transition:border-color .2s,box-shadow .2s}.journal-textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #30624a14}.journal-entry{background:var(--white);border:1.5px solid var(--linen-100);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:10px;padding:16px 18px;transition:box-shadow .2s}.journal-entry:hover{box-shadow:var(--shadow)}.journal-entry-date{color:var(--text-light);margin-bottom:5px;font-size:11px;font-weight:600}.journal-entry-prompt{color:var(--green);margin-bottom:7px;font-size:11px;font-style:italic;font-weight:600}.journal-entry-text{color:var(--text-mid);white-space:pre-wrap;font-size:14px;line-height:1.65}.success-toast{background:var(--green-dark);color:#fff;border-radius:var(--radius-full);z-index:500;white-space:nowrap;box-shadow:var(--shadow-green);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);pointer-events:none;padding:10px 22px;font-size:13px;font-weight:600;animation:.3s toastIn,.3s 2.2s forwards toastOut;position:fixed;top:70px;left:50%;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(-8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes toastOut{to{opacity:0}}.badge-popup{background:var(--green-dark);color:#fff;border-radius:var(--radius);z-index:490;text-align:center;pointer-events:none;min-width:180px;padding:14px 22px;animation:.4s cubic-bezier(.34,1.46,.64,1) slideDown;position:fixed;top:70px;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #00000040}.fact-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1.5px solid var(--linen-100);align-items:flex-start;gap:12px;margin-bottom:9px;padding:14px 16px;display:flex}.fact-card p{color:var(--text-mid);font-size:12px;font-weight:500;line-height:1.6}.level-card{border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:9px;padding:14px 18px;transition:box-shadow .2s;display:flex}.bl-footer{text-align:center;color:var(--text-light);background:var(--linen-100);border-radius:var(--radius-sm);margin-top:14px;padding:11px;font-size:11px}.bl-footer a{color:var(--green);font-weight:600;text-decoration:none}.bl-footer a:hover{text-decoration:underline}.storage-badge{color:var(--green);background:var(--green-ultra);border:1px solid var(--green-pale);border-radius:var(--radius-full);align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}@media (width<=359px){.game-grid{grid-template-columns:1fr}.hero h1{font-size:24px}.screen{padding:18px 14px 100px}.stats-row{grid-template-columns:1fr 1fr}}@media (width>=760px){.stats-row{grid-template-columns:repeat(4,1fr)}}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}::selection{background:var(--green-pale);color:var(--heading)}:focus:not(:focus-visible){outline:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible,[type=range]:focus-visible,[type=checkbox]:focus-visible,[type=radio]:focus-visible{outline:3px solid var(--green);outline-offset:2px;border-radius:var(--radius-sm)}.header button:focus-visible,.header a:focus-visible{outline-color:var(--accent)}.btn-secondary,.nav-btn{min-height:44px}.header-back{align-items:center;min-height:36px;display:inline-flex}.bl-footer a{min-height:24px;padding:2px 0;display:inline-block}:root{--text-light-strong:#6e6862}.text-readable{color:var(--text-light-strong)}.group-card-info h2,.group-card-info p,.challenge-info h3,.challenge-info p,.game-card h3,.game-card p,.fact-card p,.journal-entry-text,.journal-entry-prompt,.step-text,.modal-desc,.affirmation-text{overflow-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto}.game-card:active,.group-card:active,.challenge-card:active{transform:translateY(0)}.btn-secondary:active{transform:translateY(1px)}.nav-btn:hover{background:var(--green-25)}.nav-btn.active:hover{background:var(--green-ultra)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.affirmation-banner:before{animation:none!important}}.kids .screen{font-size:1.05em}.kids .section-title{gap:9px;font-size:20px}.kids .section-title span{font-size:24px}.kids .hero-emoji{font-size:64px}.kids .group-card-emoji{font-size:48px}.kids .challenge-emoji,.kids .game-emoji{font-size:40px}.kids .modal-emoji{font-size:52px}.kids .challenge-card,.kids .game-card,.kids .group-card{border-radius:var(--radius-lg);border-width:2px}.kids .challenge-card{padding:18px 20px}.kids .challenge-info h3{font-size:16px}.kids .challenge-info p{font-size:13px}.kids .game-card h3{font-size:14px}.kids .game-card p{font-size:12px}.kids .btn-primary{border-radius:var(--radius-full);padding:16px;font-size:17px}.kids .nav-btn span:first-child{font-size:23px}.kids .nav-label{font-size:10px}.kids .affirmation-text{font-size:20px}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.home-stagger>*{animation:.5s cubic-bezier(.22,1,.36,1) both fadeUp}.home-stagger>:first-child{animation-delay:30ms}.home-stagger>:nth-child(2){animation-delay:90ms}.home-stagger>:nth-child(3){animation-delay:.15s}.home-stagger>:nth-child(4){animation-delay:.21s}.home-stagger>:nth-child(5){animation-delay:.27s}.home-stagger>:nth-child(6){animation-delay:.33s}.home-stagger>:nth-child(7){animation-delay:.39s}.home-stagger>:nth-child(8){animation-delay:.45s}.home-stagger>:nth-child(n+9){animation-delay:.5s}@keyframes wave{0%,60%,to{transform:rotate(0)}70%{transform:rotate(14deg)}80%{transform:rotate(-8deg)}90%{transform:rotate(10deg)}}.home-greeting-emoji{transform-origin:70% 70%;animation:2.2s .4s wave;display:inline-block}@keyframes streakPulse{0%,to{box-shadow:0 0 #0000}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 12%, transparent)}}.streak-badge{animation:2.6s ease-in-out infinite streakPulse}.affirmation-banner{position:relative}.affirmation-banner:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff2e,#0000);width:45%;height:100%;animation:5.5s ease-in-out 1.2s infinite shimmer;position:absolute;top:0;left:-60%;transform:skew(-18deg)}@keyframes shimmer{0%{left:-60%}35%,to{left:140%}}.challenge-card:active,.game-card:active,.group-card:active{transform:scale(.985)}@media (prefers-reduced-motion:reduce){.home-stagger>*,.home-greeting-emoji,.streak-badge,.affirmation-banner:after{animation:none!important}.home-stagger>*{opacity:1!important;transform:none!important}}@media (width<=400px){.header{gap:8px;padding:12px 14px}.header-logo{gap:5px;font-size:17px}.header-back{padding:6px 10px;font-size:12px}.header-points{padding:5px 9px;font-size:12px}}@media (width<=340px){.header-points{display:none}}@keyframes tabIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.tab-content{animation:.28s cubic-bezier(.22,1,.36,1) both tabIn}@media (prefers-reduced-motion:reduce){.tab-content{animation:none!important}}.app.calm .home-stagger>*,.app.calm .home-greeting-emoji,.app.calm .streak-badge,.app.calm .affirmation-banner:after,.app.calm .tab-content{animation:none!important}.app.calm .home-stagger>*{opacity:1!important;transform:none!important}
