@font-face{font-family:Nunito;src:url(nunito-400.ttf)}@font-face{font-family:Nunito;src:url(nunito-900.ttf);font-weight:900}*{box-sizing:border-box}body{margin:0;background:#f8f5ee;color:#30213b;font-family:Nunito,Arial,sans-serif;font-size:18px;line-height:1.55}header{max-width:1000px;margin:auto;padding:18px 24px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #dfd7e0}header a{font-size:24px;font-weight:900;text-decoration:none;color:inherit;margin-inline-end:auto}button,select{font:inherit;min-height:48px;border:1px solid #c8bdce;border-radius:15px;padding:10px 18px;background:#fff;color:#30213b;cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:hover{border-color:#533965}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #593976;outline-offset:4px}.primary{background:#376e59;color:#fff;border-color:#376e59;font-weight:900}.secondary{background:#eee4f3}.danger{color:#9c2c38}main{max-width:900px;margin:auto;padding:24px 24px 110px;min-height:65vh}h1,h2,h3{font-weight:900;line-height:1.2}h1{font-size:clamp(30px,5vw,44px);margin:10px 0 20px}h2{font-size:26px}.eyebrow{font-size:13px;text-transform:uppercase;letter-spacing:.13em;color:#675873}.muted{color:#695e6d}.status{text-align:center;font-size:13px;margin:10px 20px}.status:empty{display:none}#message{max-width:850px;margin:15px auto;padding:16px;background:#fff2d6;border:1px solid #bda774;border-radius:14px}.hero{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.hero img{width:100%;border-radius:26px;max-height:350px;object-fit:contain}.empty{max-width:530px;margin:7vh auto;text-align:center}.empty .symbol{font-size:62px;color:#916aa1}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.actions>*{flex:1}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.card{background:#fff;border:1px solid #e0d8e3;border-radius:20px;padding:20px}.card img{width:100%;height:180px;object-fit:contain}.card h2{font-size:23px}.exercise{max-width:620px;margin:auto}.exercise .art{display:flex;overflow-x:auto;gap:16px;scroll-snap-type:x mandatory}.exercise .art img{width:100%;max-height:360px;object-fit:contain;flex-shrink:0;scroll-snap-align:start;border-radius:20px;background:white}.counter{font-size:50px;font-weight:900;text-align:center;font-variant-numeric:tabular-nums;direction:ltr}.exercise .primary{width:100%;font-size:21px}.progress{height:7px;background:#ddd2e2;border-radius:20px;margin:18px 0}.progress span{height:100%;background:#6a947b;display:block;border-radius:20px}details{margin:18px 0;padding:15px;background:#fff;border:1px solid #e0d8e3;border-radius:16px}summary{cursor:pointer;font-weight:900;min-height:30px}li{margin:10px 0}.world{position:relative;background:#eee8e0;border-radius:24px;overflow:hidden}.world img{position:absolute;object-fit:contain}.badge{display:inline-block;padding:5px 12px;background:#e0eee5;color:#254d3b;border-radius:20px;font-size:14px}.history{display:grid;gap:12px}.history article{padding:14px 20px;background:#fff;border-radius:14px;border:1px solid #e0d8e3}.history time{font-size:14px;color:#695e6d}.stats{display:flex;gap:15px;flex-wrap:wrap}.stats .card{flex:1;text-align:center}.stats strong{display:block;font-size:34px}nav{position:fixed;bottom:0;inset-inline:0;display:flex;justify-content:center;gap:8px;background:#fffefa;border-top:1px solid #ddd;padding:10px;z-index:5}nav:empty{display:none}nav button{border:0;font-size:15px;max-width:230px;flex:1}nav button[aria-current=page]{background:#ece2f0;font-weight:900}footer{text-align:center;font-size:12px;padding:12px 24px 90px;color:#695e6d}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.choice{display:block;width:100%;margin:12px 0;text-align:start}blockquote{border-inline-start:3px solid #8ca993;margin:20px 0;padding-inline-start:18px}.safety{font-size:15px}html[dir=rtl] body{font-family:Tahoma,Arial,sans-serif}@media(max-width:650px){header{padding:12px;gap:6px}header a{font-size:20px}header button,header select{font-size:14px;padding:8px}main{padding:18px 16px 100px}.hero{grid-template-columns:1fr}.hero img{max-height:220px;order:-1}.actions{gap:8px}.actions button{padding:10px}.exercise .art img{max-height:300px}}@media(prefers-color-scheme:dark){body{background:#211d26;color:#f5eff7}header,nav{border-color:#514659}header a{color:#f5eff7}.card,details,.history article{background:#302a37;border-color:#514659}.muted,.history time,footer{color:#d2c5d8}nav{background:#302a37}h1,h2,h3{color:#f5eff7}.world{background:#e8e0d5}#message{color:#30213b}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.exercise h1{font-size:30px;margin:12px 0}.exercise .art img{max-height:250px}.exercise .progress{margin:10px 0}.exercise details{margin:10px 0;padding:10px 15px}.exercise .counter{font-size:40px}.exercise .badge{margin:8px 0}.exercise .actions{margin:10px 0}
/* Stable touch controls: counting never replaces the exercise DOM. */
.exercise .rep-tap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;min-height:108px;margin:10px 0 16px;background:#e0eee5;border:2px solid #376e59;color:#254d3b;touch-action:manipulation;user-select:none;-webkit-tap-highlight-color:transparent}
.exercise .rep-tap .counter{display:block;font-size:48px;line-height:1.2}.rep-hint{font-size:16px}.rep-tap:active:not(:disabled){background:#c8e1d2}.exercise .rep-tap:disabled{opacity:1;cursor:default;border-color:#a3b7ab}.exercise .work-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}.exercise .work-actions button{width:100%;min-width:0;min-height:54px;margin:0;font-size:18px;padding:10px 8px}.exercise .minor-actions button{font-size:15px;background:transparent}.exercise button:disabled{cursor:default}.exercise .timer-toggle{display:block;width:100%;min-height:54px;background:#e0eee5;color:#254d3b}.exercise button{touch-action:manipulation}

.demo{margin:16px auto;text-align:center;max-width:460px}
.demo-stage{height:360px;display:grid;place-items:center;background:#fff;border-radius:20px;overflow:hidden}
.demo-stage [data-demo-frame]{width:100%;display:flex;justify-content:center}
.demo-stage [hidden]{display:none!important}
.demo-stage img{display:block}
.demo [data-demo-caption]{margin:8px 0;font-size:16px;font-weight:700}
.demo-controls{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:8px;direction:ltr}
.demo-controls button{min-height:48px;margin:0;padding:8px;font-size:16px;touch-action:manipulation}
.demo-note{font-size:14px;color:#5c6661;margin:8px 0}
.reader-home{font-size:14px;white-space:nowrap;color:inherit;text-underline-offset:3px} @media(max-width:650px){header{flex-wrap:wrap}.reader-home{margin-inline-start:auto}}
/* Brand additions use the reader's existing theme on every screen. */
#brand{display:flex;align-items:center;gap:8px;font-family:Nunito,Arial,sans-serif;font-size:24px;font-weight:900}#brand img{width:36px;height:36px;object-fit:contain}.brand-story,.brand-shop{max-width:650px;margin:28px auto;text-align:center}.brand-story{border-top:1px solid #dfd7e0;padding-top:24px}.brand-story h2,.brand-shop h2{font-size:23px}.brand-story p,.brand-shop p{font-size:16px;line-height:1.65}.brand-shop a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:1px solid #c8bdce;border-radius:15px;padding:10px 20px;color:inherit;text-underline-offset:4px}.brand-shop small{display:block;font-size:12px;margin-top:8px}.brand-signature{text-align:center;font-size:14px;color:#695e6d}#app:focus{outline:none}@media(max-width:650px){#brand{font-size:22px}#brand img{width:30px;height:30px}.brand-story,.brand-shop{margin:24px auto}}@media(prefers-color-scheme:dark){.brand-signature{color:#d2c5d8}.brand-story{border-color:#514659}}
/* Six rewards per page, shared by every PDF world. */
.rewards{margin-top:24px}.reward-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.reward-heading h2{font-size:23px;margin:0}.reward-heading p{font-size:14px;margin:8px 0;color:#695e6d}.reward-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.reward-item{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid #e0d8e3;background:#fff;border-radius:14px;padding:12px;min-height:66px;font-size:15px;overflow-wrap:anywhere}.reward-item .badge{flex-shrink:0;font-size:12px;padding:4px 8px}.reward-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0}.reward-pagination button{font-size:15px;min-height:48px}.reward-pagination>span{font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}.reward-pagination:focus{outline:none}@media(max-width:450px){.reward-item{align-items:flex-start;flex-direction:column;gap:6px;padding:10px;font-size:14px}.reward-pagination button{padding:8px 12px;font-size:14px}}@media(prefers-color-scheme:dark){.reward-item{background:#302a37;border-color:#514659}.reward-heading p{color:#d2c5d8}}
