@font-face{font-family:Oups;src:url('../fonts/Oups.otf') format('opentype');font-display:swap;font-weight:400}
@font-face{font-family:OupsClean;src:url('../fonts/Oups_Clean.otf') format('opentype');font-display:swap;font-weight:400}
@font-face{font-family:OupsOutline;src:url('../fonts/Oups_Outline.otf') format('opentype');font-display:swap;font-weight:400}
@font-face{font-family:Rocket;src:url('../fonts/PlayfullRocket.ttf') format('truetype');font-display:swap;font-weight:400}
@font-face{font-family:Bakwan;src:url('../fonts/GoodBakwan.otf') format('opentype');font-display:swap;font-weight:400}

:root{
  --green:#a7df7d;--green-dark:#278b3c;--turquoise:#35c8bd;--yellow:#ffdf4f;--orange:#f47b28;--orange-dark:#bd4926;--peach:#ffb071;
  --ink:#4d443e;--muted:#756e68;--white:#fff;--radius:28px;
  --shadow:0 8px 0 rgba(77,68,62,.15),0 14px 26px rgba(0,0,0,.08);
  --shadow-hover:0 12px 0 rgba(77,68,62,.12),0 20px 34px rgba(0,0,0,.11);
  --font-ui:Bakwan,Arial,sans-serif;--font-display:Rocket,Bakwan,sans-serif;--font-effect:OupsClean,Bakwan,sans-serif;
  --ease-spring:cubic-bezier(.2,.8,.2,1.15);--ease-smooth:cubic-bezier(.22,.61,.36,1)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;min-height:100%;font-family:var(--font-ui);font-weight:400;color:var(--ink)}
b,strong{font-weight:400}
button,input,select,textarea{font-family:inherit}
body{background:var(--green) url('../img/backgrounds/bg-pattern.webp') center top/700px auto repeat-y;overflow-x:hidden}
a,button{-webkit-tap-highlight-color:transparent}
.page-enter{animation:pageIn .42s var(--ease-smooth) both}
.bib-body{padding-top:118px}
.topbar{height:118px;position:fixed;z-index:50;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:12px clamp(16px,4vw,40px);background:rgba(167,223,125,.92);backdrop-filter:blur(10px);transition:height .28s var(--ease-smooth),box-shadow .28s,background .28s}
.topbar.scrolled{box-shadow:0 8px 25px rgba(61,89,43,.13);background:rgba(167,223,125,.97)}
.icon-button{border:0;background:none;padding:0;cursor:pointer;transition:transform .18s var(--ease-spring),filter .18s}
.icon-button:hover{transform:translateY(-2px) scale(1.05)}.icon-button:active{transform:scale(.92)}
.icon-button img{width:58px;height:58px;object-fit:contain;display:block}
.mascot-top{display:flex;flex-direction:column;align-items:center;text-decoration:none;animation:mascotFloat 3.8s ease-in-out infinite;transform-origin:50% 80%}
.mascot-top:hover{animation-play-state:paused;transform:scale(1.05)}
.mascot-top img{height:68px;max-width:92px;object-fit:contain;filter:drop-shadow(0 5px 6px rgba(86,72,32,.12))}
.xp-mini{width:140px;height:16px;border:3px solid #79417f;border-radius:20px;background:#fff;overflow:hidden;box-shadow:0 3px 0 rgba(121,65,127,.15)}
.xp-mini i{display:block;width:45%;height:100%;background:linear-gradient(90deg,#ef3e76,#ff6493);position:relative}
.xp-mini i:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.5) 45%,transparent 65%);transform:translateX(-120%);animation:shine 3s infinite}
.page-shell{max-width:1180px;margin:0 auto;padding:24px 22px 60px}
.hero-home{background:rgba(255,255,255,.86);border-radius:36px;padding:28px 30px;display:flex;min-height:260px;align-items:center;justify-content:space-between;overflow:hidden;box-shadow:var(--shadow);position:relative;isolation:isolate}
.hero-home:before,.hero-home:after{content:"";position:absolute;border-radius:50%;background:rgba(255,223,79,.2);z-index:-1;filter:blur(1px);animation:bubble 7s ease-in-out infinite alternate}.hero-home:before{width:180px;height:180px;right:7%;top:-70px}.hero-home:after{width:95px;height:95px;left:42%;bottom:-35px;animation-delay:-2s}
.welcome span{font-size:26px}.welcome h1{font-family:var(--font-display);font-size:clamp(54px,9vw,92px);font-weight:400;line-height:.9;margin:8px 0;color:var(--yellow);-webkit-text-stroke:2px #4b331c;text-shadow:0 5px 0 rgba(0,0,0,.09);transform-origin:left center;animation:titlePop .65s .08s var(--ease-spring) both}.welcome p{font-size:22px;max-width:560px;line-height:1.35}
.hero-lion{max-height:245px;max-width:40%;object-fit:contain;filter:drop-shadow(0 12px 14px rgba(74,55,28,.12));animation:lionHello 4.4s ease-in-out infinite}
.player-strip,.guest-callout{margin:20px 0;background:#fff;border-radius:24px;padding:18px 22px;box-shadow:var(--shadow);display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.player-strip>div:first-child{margin-right:auto;display:flex;flex-direction:column}.coin{background:#fff8df;padding:9px 14px;border-radius:16px;transition:transform .18s var(--ease-spring)}.coin:hover{transform:translateY(-3px) rotate(-1deg)}.guest-callout b{margin-right:auto}
.btn{border:0;border-radius:24px;padding:16px 26px;font:inherit;font-weight:400;font-size:21px;text-decoration:none;text-align:center;cursor:pointer;display:inline-block;transition:transform .16s var(--ease-spring),box-shadow .16s,filter .16s;box-shadow:0 6px 0 rgba(77,68,62,.15)}.btn:hover{transform:translateY(-3px);filter:saturate(1.06);box-shadow:0 9px 0 rgba(77,68,62,.13)}.btn:active{transform:translateY(3px) scale(.98);box-shadow:0 2px 0 rgba(77,68,62,.12)}
.btn-yellow{background:var(--yellow);color:var(--orange-dark)}.btn-green{background:#70c866;color:white}.btn:disabled{filter:grayscale(.8);opacity:.55;transform:none;box-shadow:0 4px 0 rgba(77,68,62,.1)}
.section-title{font-family:var(--font-display);font-weight:400;color:var(--green-dark);font-size:31px;margin:30px 0 15px;letter-spacing:.2px}.section-head{display:flex;align-items:center;justify-content:space-between}.section-head a,.small-link{color:var(--orange-dark)}
.action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.action-card{position:relative;background:#fff;border-radius:26px;padding:20px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);display:grid;grid-template-columns:70px 1fr;gap:4px 15px;align-items:center;transition:transform .24s var(--ease-spring),box-shadow .24s,filter .24s;will-change:transform}.action-card:hover{transform:translateY(-7px) rotate(-.4deg);box-shadow:var(--shadow-hover)}.action-card:active{transform:translateY(1px) scale(.985)}.action-card img{width:64px;max-height:64px;object-fit:contain;grid-row:1/3;transition:transform .3s var(--ease-spring)}.action-card:hover img{transform:rotate(-7deg) scale(1.09)}.action-card b{font-size:22px}.action-card span{color:var(--muted);font-family:var(--font-ui)}.action-card em{position:absolute;right:12px;top:10px;background:#ffe2b9;color:#a65a21;border-radius:12px;padding:4px 8px;font-size:12px;font-style:normal}.disabled{opacity:.75}
.book-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.book-grid.compact{grid-template-columns:repeat(3,1fr)}.book-card{position:relative;min-height:210px;background:#fff;border-radius:28px;overflow:hidden;box-shadow:var(--shadow);text-decoration:none;color:white;transition:transform .25s var(--ease-spring),box-shadow .25s}.book-card:hover{transform:translateY(-7px) scale(1.015);box-shadow:var(--shadow-hover)}.book-card img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform .8s var(--ease-smooth),filter .4s}.book-card:hover img{transform:scale(1.075);filter:saturate(1.08)}.book-card:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.65))}.book-card strong,.book-card span{position:absolute;z-index:2;left:16px;right:16px;text-shadow:0 2px 2px #000}.book-card strong{bottom:32px;font-family:var(--font-display);font-size:25px}.book-card span{bottom:13px;font-size:14px}
.page-heading{display:flex;align-items:center;gap:16px;margin:0 0 24px}.page-heading>img{width:80px;animation:iconWiggle 3.8s ease-in-out infinite}.page-heading h1{font-family:var(--font-display);font-weight:400;font-size:42px;color:var(--green-dark);margin:0}.page-heading p{margin:3px 0;font-size:19px}.round-back img{width:58px;transition:transform .2s var(--ease-spring)}.round-back:hover img{transform:translateX(-5px) scale(1.04)}
.chapter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.chapter-card{background:#fff;border-radius:22px;padding:20px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px;transition:transform .22s var(--ease-spring),box-shadow .22s}.chapter-card:hover{transform:translateY(-5px) rotate(-.25deg);box-shadow:var(--shadow-hover)}.chapter-card b{font-family:var(--font-display);color:var(--orange-dark);font-size:22px}.chapter-card span{line-height:1.3}
.chapter-hero{position:relative;border-radius:35px;overflow:hidden;height:min(54vw,480px);box-shadow:var(--shadow);background:white}.chapter-hero>img{width:100%;height:100%;object-fit:cover;animation:heroKenBurns 14s ease-in-out infinite alternate}.chapter-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.36));pointer-events:none}.chapter-hero>div{position:absolute;z-index:2;left:24px;right:24px;bottom:20px;color:#fff;text-shadow:0 3px 3px rgba(0,0,0,.6)}.chapter-hero span{font-size:25px;color:#b4ff98}.chapter-hero h1{font-family:var(--font-display);font-weight:400;font-size:46px;margin:4px 0}
.reading-card{margin-top:22px;background:#fff;border-radius:30px;padding:30px;box-shadow:var(--shadow);font-family:var(--font-ui);font-weight:400;font-size:20px;line-height:1.62;letter-spacing:.08px}.reading-card h2{font-family:var(--font-display);font-weight:400;font-size:33px;color:var(--green-dark);margin-top:0}.reading-card>p{margin-bottom:0}.reflection{margin-top:28px;padding:20px;border-radius:22px;background:#fff0c9;position:relative;overflow:hidden}.reflection:before{content:"✨";position:absolute;right:16px;top:9px;font-size:24px;animation:sparkle 2.5s ease-in-out infinite}.reflection b{font-family:var(--font-display);font-size:23px;color:var(--orange-dark)}
.reading-progress{position:sticky;z-index:8;bottom:10px;margin:22px auto 0;max-width:680px;background:#fff;border-radius:24px;padding:18px;box-shadow:var(--shadow);text-align:center}.reading-progress>div:first-child{display:flex;justify-content:space-between;gap:12px}.progress{height:14px;background:#eee;border-radius:20px;overflow:hidden;margin:10px 0 14px}.progress i{height:100%;display:block;width:0;background:linear-gradient(90deg,#ef3e76,#ff6ca0);transition:width .35s var(--ease-smooth);position:relative}.progress i:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 15%,rgba(255,255,255,.55) 45%,transparent 75%);animation:shine 2.2s linear infinite}
.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.52);z-index:80;opacity:0;pointer-events:none;transition:.25s;backdrop-filter:blur(1px)}.drawer{position:fixed;z-index:81;left:0;top:0;bottom:0;width:min(420px,86vw);background:var(--turquoise);padding:28px 22px;transform:translateX(-104%) scale(.98);transform-origin:left center;transition:transform .36s var(--ease-spring);border-radius:0 42% 42% 0/0 10% 10% 0;overflow:auto;box-shadow:18px 0 45px rgba(0,0,0,.17)}.drawer.open{transform:translateX(0) scale(1)}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer-user{display:flex;align-items:center;gap:14px;color:white;font-size:25px;margin:20px 8px 25px}.avatar-circle{width:80px;height:80px;border-radius:50%;background:white;display:grid;place-items:center;box-shadow:0 5px 0 rgba(0,0,0,.08)}.avatar-circle img{width:45px}.drawer nav{display:flex;flex-direction:column}.drawer nav>a,.drawer-form button{border:0;border-bottom:1px solid rgba(255,255,255,.28);background:none;display:flex;align-items:center;gap:16px;padding:14px 8px;text-decoration:none;color:#fff;font:inherit;font-weight:400;font-size:24px;text-align:left;width:100%;cursor:pointer;transition:transform .18s var(--ease-spring),background .18s,padding-left .18s}.drawer nav>a:hover,.drawer-form button:hover{transform:translateX(5px);padding-left:13px;background:rgba(255,255,255,.07)}.drawer nav img{width:44px;height:44px;object-fit:contain;transition:transform .2s var(--ease-spring)}.drawer nav>a:hover img,.drawer-form button:hover img{transform:rotate(-5deg) scale(1.05)}.drawer nav small{font-size:10px;background:#ffdd79;color:#8a5720;padding:4px 7px;border-radius:8px;margin-left:auto}
.guest-body{background:var(--green)}.guest-shell{max-width:720px;margin:auto;min-height:100vh;min-height:100dvh;padding:35px 28px}.auth-card{min-height:90vh;position:relative;padding:22px 15px 260px}.auth-title{text-align:center;color:#fff;font-size:28px;text-shadow:0 3px 0 #222}.auth-title h1{font-family:var(--font-display);font-weight:400;font-size:82px;line-height:.9;margin:8px;color:var(--yellow);-webkit-text-stroke:2px #312415;animation:titlePop .65s var(--ease-spring) both}.auth-title h2{font-family:var(--font-display);font-weight:400;font-size:38px}.auth-card form{display:flex;flex-direction:column;gap:18px;position:relative;z-index:2}.auth-card label{font-size:23px;color:#ffdb4d;text-shadow:0 2px 1px #222}.auth-card input,.auth-card select{width:100%;border:0;border-radius:30px;padding:22px 25px;margin-top:8px;font:inherit;font-weight:400;font-size:20px;color:#555;box-shadow:0 9px 0 rgba(50,50,50,.32);outline:0;transition:transform .2s,box-shadow .2s}.auth-card input:focus,.auth-card select:focus{transform:translateY(-2px);box-shadow:0 9px 0 rgba(50,50,50,.25),0 0 0 4px rgba(53,200,189,.4)}.auth-card .btn{margin-top:14px;width:100%;font-size:28px}.auth-alt,.back-link{display:block;text-align:center;color:#fff;text-decoration:none;font-size:21px;text-shadow:0 2px 1px #333;margin-top:20px;position:relative;z-index:2}.back-link{text-align:left}.auth-lion{position:absolute;right:0;bottom:0;width:min(88%,540px);z-index:0;animation:lionHello 4.4s ease-in-out infinite}.register-card{padding-bottom:50px}.flash{max-width:720px;margin:10px auto 18px;padding:14px 18px;border-radius:15px;background:white;animation:dropIn .4s var(--ease-spring)}.flash.error{border-left:6px solid #d84c3b}.center-card{background:#fff;border-radius:32px;padding:35px;text-align:center;box-shadow:var(--shadow)}.center-card img{max-width:220px}.center-card h1{font-family:var(--font-display);font-weight:400;font-size:50px;color:var(--green-dark)}
.reveal{opacity:0;transform:translateY(22px) scale(.985)}.reveal.revealed{opacity:1;transform:none;transition:opacity .55s var(--ease-smooth),transform .55s var(--ease-spring)}
.tap-pop{animation:tapPop .32s var(--ease-spring)}

@keyframes pageIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes mascotFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-5px) rotate(1.2deg)}}
@keyframes lionHello{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(-5px) rotate(-1deg)}55%{transform:translateY(-5px) rotate(1deg)}}
@keyframes titlePop{0%{opacity:0;transform:scale(.78) rotate(-2deg)}70%{opacity:1;transform:scale(1.04) rotate(.5deg)}100%{transform:scale(1)}}
@keyframes bubble{from{transform:translateY(-8px) scale(.95)}to{transform:translateY(10px) scale(1.08)}}
@keyframes shine{0%{transform:translateX(-120%)}55%,100%{transform:translateX(140%)}}
@keyframes iconWiggle{0%,88%,100%{transform:rotate(0)}91%{transform:rotate(-5deg)}95%{transform:rotate(5deg)}}
@keyframes heroKenBurns{from{transform:scale(1.01)}to{transform:scale(1.065)}}
@keyframes sparkle{0%,100%{transform:scale(.9) rotate(-10deg);opacity:.55}50%{transform:scale(1.18) rotate(10deg);opacity:1}}
@keyframes tapPop{0%{transform:scale(1)}50%{transform:scale(.94)}100%{transform:scale(1)}}
@keyframes dropIn{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}

/* mobile-first: base (era @media (max-width:850px)) */.action-grid{grid-template-columns:1fr}.book-grid,.book-grid.compact{grid-template-columns:repeat(2,1fr)}.chapter-grid{grid-template-columns:repeat(2,1fr)}.hero-home{min-height:210px}.hero-lion{max-height:190px}.welcome p{font-size:18px}/* fim: era @media (max-width:850px) */
/* mobile-first: base (era @media (max-width:520px)) */.bib-body{padding-top:98px}.topbar{height:98px;padding:10px 15px}.icon-button img{width:52px;height:52px}.mascot-top img{height:58px}.xp-mini{width:110px}.page-shell{padding:18px 16px 48px}.hero-home{padding:22px 18px;min-height:190px}.welcome span{font-size:20px}.welcome h1{font-size:56px}.welcome p{font-size:16px}.hero-lion{max-width:42%;max-height:160px}.book-grid,.book-grid.compact{gap:13px}.book-card{min-height:170px}.book-card strong{font-size:20px}.chapter-grid{grid-template-columns:1fr}.page-heading h1{font-size:33px}.chapter-hero{height:67vw}.chapter-hero h1{font-size:34px}.chapter-hero span{font-size:20px}.reading-card{padding:22px 20px;font-size:18px;line-height:1.58}.reading-card h2{font-size:28px}.auth-title h1{font-size:65px}.auth-card input,.auth-card select{padding:18px 20px}.drawer nav>a,.drawer-form button{font-size:22px}/* fim: era @media (max-width:520px) */
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.reveal{opacity:1!important;transform:none!important}.chapter-hero>img{transform:none!important}}

/* v1.3 — leitura persistente + quiz */
.reading-status{min-height:26px;margin-top:10px;text-align:center;font-family:var(--font-ui);font-size:16px;color:#517449}
.quiz-shell{max-width:760px;margin:0 auto;padding:26px 18px 70px;text-align:center}
.quiz-shell .eyebrow{display:inline-block;color:#32964d;font-family:var(--font-title);font-size:20px;margin-bottom:10px}
.quiz-shell h1{font-family:var(--font-display);font-size:clamp(32px,calc(6 * var(--app-vw)),54px);line-height:1.04;color:#c84d27;margin:10px 0 24px}
.quiz-shell p{font-size:20px;line-height:1.55}
.quiz-mascot img{width:150px;max-height:150px;object-fit:contain;animation:mascotFloat 3.2s ease-in-out infinite}
.quiz-progress{height:14px;background:#fff;border:3px solid #74472d;border-radius:999px;overflow:hidden;box-shadow:0 4px 0 rgba(83,47,27,.15);margin:0 auto 28px;max-width:420px}
.quiz-progress i{display:block;height:100%;background:linear-gradient(90deg,#f3487e,#ff6e91);border-radius:inherit;transition:width .45s ease}
.quiz-options{display:grid;gap:14px;margin-top:24px}
.quiz-option{width:100%;border:0;border-radius:24px;background:#fff;padding:18px 22px;font:22px var(--font-ui);color:#555;box-shadow:0 7px 0 rgba(77,66,51,.18);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.quiz-option:hover{transform:translateY(-3px);box-shadow:0 10px 0 rgba(77,66,51,.16)}
.quiz-option:active{transform:translateY(3px);box-shadow:0 3px 0 rgba(77,66,51,.18)}
.quiz-feedback{padding:14px 18px;border-radius:20px;margin:0 auto 18px;max-width:560px;font-family:var(--font-ui);font-size:18px;animation:popIn .35s ease both}
.quiz-feedback.correct{background:#dff5c9;color:#34733a}.quiz-feedback.wrong{background:#fff0c5;color:#8a651f}
.quiz-empty{background:rgba(255,255,255,.88);border-radius:28px;padding:24px;margin:24px 0;box-shadow:0 9px 24px rgba(73,111,57,.12)}
.quiz-empty h2{font-family:var(--font-title);color:#32964d;font-size:28px;margin:0 0 8px}
.score-big{width:220px;height:220px;border-radius:50%;margin:15px auto 22px;background:#ffdf52;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 12px 0 #e8b937,0 18px 35px rgba(105,74,25,.18)}
.score-big strong{font-family:var(--font-display);font-size:72px;color:#c84d27;line-height:.9}.score-big span{font-family:var(--font-ui);font-size:18px;margin-top:10px}
@keyframes popIn{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}


/* v1.6 — progresso visual por capítulo */
.book-progress{background:rgba(255,255,255,.9);border-radius:26px;padding:18px 20px;margin:0 0 22px;box-shadow:var(--shadow)}
.book-progress-top{display:flex;align-items:center;gap:15px}.book-progress-top>div:first-child{display:flex;flex-direction:column;gap:3px;margin-right:auto}.book-progress-top strong{font-family:var(--font-display);font-size:24px;color:var(--green-dark)}.book-progress-top span{font-size:15px;color:var(--muted)}
.book-progress-medal{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#6bc45f;color:#fff;border:4px solid #fff;box-shadow:0 5px 0 rgba(54,126,54,.18);font:28px var(--font-ui);animation:checkBreathe 2.8s ease-in-out infinite}
.book-progress-bar{height:14px;background:#e8eadf;border-radius:99px;overflow:hidden;margin-top:13px;box-shadow:inset 0 2px 3px rgba(0,0,0,.07)}.book-progress-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#63be59,#8edc72);position:relative;transition:width .65s var(--ease-smooth)}.book-progress-bar i:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 15%,rgba(255,255,255,.55) 45%,transparent 75%);animation:shine 2.5s linear infinite}
.chapter-card{position:relative;overflow:visible}.chapter-card.is-complete{background:linear-gradient(145deg,#fff 0%,#f1ffe8 100%);box-shadow:0 8px 0 rgba(72,151,62,.17),0 14px 26px rgba(0,0,0,.08);border:2px solid rgba(104,191,91,.32)}.chapter-card.is-complete:hover{transform:translateY(-5px) rotate(.2deg)}
.chapter-check{position:absolute;right:-9px;top:-10px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#61bd57;color:#fff;border:4px solid #fff;box-shadow:0 5px 0 rgba(51,129,47,.18),0 7px 14px rgba(0,0,0,.11);font:26px var(--font-ui);z-index:3;animation:checkPop .45s var(--ease-spring) both}
.chapter-status-dot{position:absolute;right:13px;top:13px;width:13px;height:13px;border-radius:50%;background:#ffb23d;box-shadow:0 0 0 5px rgba(255,178,61,.2);animation:statusPulse 1.8s ease-in-out infinite}
.chapter-label{display:inline-flex;align-self:flex-start;margin-top:5px;padding:5px 9px;border-radius:10px;font-size:12px;line-height:1}.chapter-label.complete{background:#dcf5d4;color:#3d8f38}.chapter-label.progress{background:#fff0cf;color:#a46b12}
@keyframes checkPop{0%{opacity:0;transform:scale(.3) rotate(-18deg)}75%{opacity:1;transform:scale(1.12) rotate(3deg)}100%{transform:scale(1)}}
@keyframes checkBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes statusPulse{0%,100%{transform:scale(.9);opacity:.7}50%{transform:scale(1.1);opacity:1}}
/* mobile-first: base (era @media (max-width:520px)) */.book-progress-top strong{font-size:21px}.book-progress-medal{width:43px;height:43px}.chapter-check{right:-6px;top:-8px;width:38px;height:38px;font-size:23px}/* fim: era @media (max-width:520px) */

/* v1.7 — capa animada + música-tema dos livros */
.book-media-stage{position:relative;margin:0 0 24px}
.book-media-frame{position:relative;min-height:260px;aspect-ratio:16/8.4;border-radius:32px;overflow:hidden;background:#ead8ba;box-shadow:var(--shadow);isolation:isolate}
.book-cover-video,.book-cover-static{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.book-cover-video{z-index:1}.book-cover-static{z-index:1}
.book-media-frame:after{content:"";position:absolute;inset:38% 0 0;z-index:2;background:linear-gradient(transparent,rgba(45,32,22,.57));pointer-events:none}
.book-media-title{position:absolute;z-index:3;left:24px;right:90px;bottom:20px;color:#fff;text-shadow:0 3px 0 rgba(60,40,24,.35);display:flex;flex-direction:column;line-height:1}
.book-media-title span{font-size:18px}.book-media-title strong{font-family:var(--font-display);font-size:clamp(34px,6vw,62px);color:var(--yellow);margin-top:5px}
.music-toggle{position:absolute;right:18px;bottom:17px;z-index:5;border:0;border-radius:999px;background:rgba(255,255,255,.94);padding:8px 12px 8px 8px;display:flex;align-items:center;gap:7px;cursor:pointer;box-shadow:0 6px 0 rgba(72,55,43,.18),0 10px 22px rgba(0,0,0,.12);color:var(--ink);font:15px var(--font-ui);transition:transform .2s var(--ease-spring),opacity .2s,filter .2s}
.music-toggle:hover{transform:translateY(-2px) scale(1.02)}.music-toggle:active{transform:translateY(2px) scale(.97)}
.music-toggle img{width:38px;height:38px;object-fit:contain;animation:musicBeat 2.3s ease-in-out infinite}.music-toggle.is-off{opacity:.68;filter:grayscale(.6)}.music-toggle.is-off img{animation:none}
.chapter-music-controller{position:relative;z-index:8}.music-toggle-floating{position:fixed;right:18px;bottom:22px;z-index:45}
@keyframes musicBeat{0%,100%{transform:rotate(0) scale(1)}45%{transform:rotate(-3deg) scale(1.05)}55%{transform:rotate(3deg) scale(1.08)}}
/* mobile-first: base (era @media (max-width:520px)) */.book-media-frame{min-height:220px;aspect-ratio:4/3}.book-media-title{left:18px;right:76px;bottom:16px}.book-media-title span{font-size:15px}.music-toggle{right:12px;bottom:12px;padding:6px}.music-toggle span{display:none}.music-toggle img{width:34px;height:34px}.music-toggle-floating{right:14px;bottom:16px}/* fim: era @media (max-width:520px) */

/* v1.8 — navegação imersiva, capas full-width e capítulos com thumbnail */
.bib-body.is-immersive{padding-top:0}
.bib-body.is-immersive .page-shell{padding-top:0}
.immersive-hero{position:relative;max-width:1180px;margin:0 auto 26px;overflow:hidden;background:var(--green);border-radius:0 0 38px 38px;box-shadow:0 12px 30px rgba(65,107,43,.16);isolation:isolate}
.immersive-media{position:relative;width:100%;aspect-ratio:16/9;background:#d8cfbb;overflow:hidden}
.immersive-cover-media{display:block;width:100%;height:100%;object-fit:cover;object-position:center;animation:heroKenBurns 16s ease-in-out infinite alternate}
.immersive-nav{position:absolute;z-index:12;top:18px;left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.hero-action{width:58px;height:58px;border:0;background:transparent;padding:0;display:grid;place-items:center;cursor:pointer;pointer-events:auto;filter:drop-shadow(0 5px 7px rgba(0,0,0,.15));transition:transform .18s var(--ease-spring)}
.hero-action:hover{transform:translateY(-2px) scale(1.06)}.hero-action:active{transform:translateY(2px) scale(.95)}.hero-action img{width:100%;height:100%;object-fit:contain}
.immersive-curve{position:absolute;z-index:3;left:-4%;right:-4%;bottom:58px;height:80px;background:var(--green);border-radius:50% 50% 0 0/42% 42% 0 0;transform:translateY(48px);pointer-events:none}
.immersive-title{position:relative;z-index:5;margin-top:-2px;padding:8px 28px 24px;text-align:center;background:var(--green)}
.immersive-title span{display:block;font-family:var(--font-ui);font-size:18px;color:#fff;text-shadow:0 2px 0 rgba(67,110,44,.25);margin-bottom:2px}
.immersive-title h1{font-family:var(--font-display);font-weight:400;font-size:clamp(38px,7vw,68px);line-height:1;margin:0;color:#fff;text-shadow:0 3px 0 rgba(67,110,44,.25)}
.music-toggle-on-hero{right:18px;bottom:18px;z-index:9}
.immersive-content{max-width:1180px;margin:0 auto}

.chapter-list-visual{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.chapter-card-visual{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:16px;padding:10px 18px 10px 10px;min-height:112px;overflow:visible}
.chapter-card-visual .chapter-thumb{width:112px;height:92px;border-radius:20px;overflow:hidden;display:block;background:#ece8dc;box-shadow:0 4px 10px rgba(0,0,0,.10)}
.chapter-card-visual .chapter-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s var(--ease-smooth)}
.chapter-card-visual:hover .chapter-thumb img{transform:scale(1.06)}
.chapter-card-visual .chapter-copy{display:flex;min-width:0;flex-direction:column;gap:5px;line-height:1.18}
.chapter-card-visual .chapter-copy>b{font-family:var(--font-display);font-size:23px;color:var(--orange-dark)}
.chapter-card-visual .chapter-copy>span{font-size:16px;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.chapter-card-visual .chapter-label{width:max-content}
.chapter-card-visual .chapter-check{right:-8px;top:-9px}

.chapter-content .reading-card{margin-top:0}

/* mobile-first: removido @media (min-width:901px) (regras desktop) */
/* mobile-first: base (era @media (max-width:850px)) */.chapter-list-visual{grid-template-columns:1fr}/* fim: era @media (max-width:850px) */
/* mobile-first: base (era @media (max-width:520px)) */
  .bib-body.is-immersive .page-shell{padding:0 0 48px}
  .immersive-hero{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);margin-bottom:18px;border-radius:0 0 28px 28px;box-shadow:none}
  .immersive-media{aspect-ratio:16/9;min-height:0}
  .immersive-nav{top:max(14px,env(safe-area-inset-top));left:18px;right:18px}
  .hero-action{width:54px;height:54px}
  .immersive-curve{bottom:52px;height:70px;transform:translateY(45px)}
  .immersive-title{padding:6px 18px 21px}
  .immersive-title span{font-size:16px}.immersive-title h1{font-size:38px}
  .music-toggle-on-hero{right:12px;bottom:12px}
  .immersive-content{padding:0 16px}
  .chapter-list-visual{gap:14px}
  .chapter-card-visual{grid-template-columns:96px minmax(0,1fr);gap:13px;min-height:102px;padding:9px 15px 9px 9px;border-radius:24px}
  .chapter-card-visual .chapter-thumb{width:96px;height:84px;border-radius:18px}
  .chapter-card-visual .chapter-copy>b{font-size:21px}
  .chapter-card-visual .chapter-copy>span{font-size:15px}
  .book-progress{margin-bottom:16px}
  .chapter-content .reading-card{border-radius:30px;padding:24px 22px}
/* fim: era @media (max-width:520px) */


/* ===== Biblinha v1.9 — hero imersivo / lista de fases ===== */
.bib-body.is-immersive{background:var(--green);}
.bib-body.is-immersive .page-shell{max-width:none;width:100%;padding-left:0;padding-right:0;}
.immersive-hero{max-width:1180px;margin:0 auto;background:var(--green);border-radius:0 0 42px 42px;overflow:hidden;box-shadow:none;}
.immersive-media{aspect-ratio:16/9;width:100%;}
.immersive-cover-media{width:100%;height:100%;object-fit:cover;object-position:center;display:block;}
.immersive-nav{top:18px;left:18px;right:18px;}
.hero-action{width:56px;height:56px;border:0;background:transparent;padding:0;filter:drop-shadow(0 4px 5px rgba(0,0,0,.18));}
.hero-action img{width:100%;height:100%;object-fit:contain;display:block;}
.immersive-curve{bottom:-1px;height:70px;transform:translateY(42px);background:var(--green);}
.immersive-content{max-width:1000px;margin:0 auto;padding:18px 22px 48px;}
.chapter-content{margin-top:-10px;position:relative;z-index:5;}
.chapter-content .reading-card{border-radius:32px;margin-top:0;box-shadow:0 8px 0 rgba(93,149,61,.18);}
.chapter-content .reading-card h2{color:#2d963e;text-align:left;font-size:clamp(28px,5vw,42px);line-height:1.25;}
.chapter-list-visual{display:grid;grid-template-columns:1fr;gap:14px;}
.chapter-card-visual{display:grid;grid-template-columns:96px 1fr auto;align-items:center;gap:14px;min-height:104px;padding:10px 14px 10px 10px;border-radius:26px;background:#fff;box-shadow:0 8px 0 rgba(93,149,61,.16);}
.chapter-card-visual .chapter-thumb{width:96px;height:84px;border-radius:20px;overflow:hidden;box-shadow:none;}
.chapter-card-visual .chapter-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start;}
.chapter-card-visual .chapter-copy b{font-family:var(--font-display);font-size:26px;font-weight:400;color:#c34a2a;line-height:1;}
.chapter-card-visual .chapter-copy>span{margin-top:8px;font-family:var(--font-ui);font-size:16px;color:#514945;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.chapter-card-visual .chapter-check{position:static;align-self:center;margin-left:4px;}

/* mobile-first: base (era @media (max-width:520px)) */
  .bib-body.is-immersive{padding-top:0;}
  .bib-body.is-immersive .page-shell{padding:0 0 42px;}
  .immersive-hero{width:100%;margin:0;border-radius:0;overflow:visible;}
  .immersive-media{aspect-ratio:16/10;max-height:none;}
  .immersive-cover-media{object-fit:cover;}
  .immersive-nav{top:max(12px,env(safe-area-inset-top));left:18px;right:18px;}
  .hero-action{width:52px;height:52px;}
  .immersive-curve{left:-6%;right:-6%;bottom:-1px;height:78px;transform:translateY(45px);border-radius:50% 50% 0 0/45% 45% 0 0;}
  .immersive-content{padding:32px 16px 48px;}
  .chapter-content{padding-top:26px;margin-top:0;}
  .chapter-card-visual{grid-template-columns:84px minmax(0,1fr) auto;min-height:100px;padding:10px 12px 10px 10px;border-radius:24px;gap:12px;}
  .chapter-card-visual .chapter-thumb{width:84px;height:80px;border-radius:18px;}
  .chapter-card-visual .chapter-copy b{font-size:23px;}
  .chapter-card-visual .chapter-copy>span{font-size:15px;}
  .chapter-content .reading-card{padding:24px 20px;border-radius:30px;}
  .chapter-content .reading-card h2{font-size:30px;}
/* fim: era @media (max-width:520px) */


/* ===== Biblinha v1.10 — correção do hero invisível ===== */
.immersive-enter{opacity:1;transform:none;animation:immersiveHeroEnter .55s cubic-bezier(.2,.8,.2,1) both;}
@keyframes immersiveHeroEnter{from{opacity:0;transform:translateY(-8px) scale(1.01)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.immersive-enter{animation:none!important;opacity:1!important;transform:none!important}}
\n\n
/* ===== Biblinha v1.13 — hero fiel à referência ===== */
/*
 * A curva agora é desenhada por SVG. O verde cobre mais as laterais e
 * menos o centro, fazendo a imagem descer no meio. O stroke do próprio
 * path cria a borda verde-clara acompanhando exatamente a curva.
 */
.immersive-hero{
  overflow:visible;
  background:var(--green);
}
.immersive-media{
  position:relative;
  overflow:hidden;
  width:100%;
  aspect-ratio:16/10;
  background:#d8cfbb;
}
.immersive-cover-media{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.hero-curve-overlay{
  position:absolute;
  z-index:5;
  left:0;
  right:0;
  bottom:-1px;
  width:100%;
  height:25%;
  display:block;
  pointer-events:none;
  overflow:visible;
}
.hero-curve-overlay path{
  fill:var(--green);
  stroke:#b9ee8f;
  stroke-width:1.35;
  vector-effect:non-scaling-stroke;
  stroke-linejoin:round;
}
.hero-caption{
  position:absolute;
  z-index:7;
  left:28px;
  bottom:22%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  max-width:78%;
  pointer-events:none;
  text-align:left;
}
.hero-caption span{
  font-family:var(--font-ui);
  font-size:clamp(18px,2.5vw,28px);
  line-height:1;
  color:#f7fff0;
  font-weight:700;
  -webkit-text-stroke:1px rgba(44,132,54,.72);
  text-shadow:0 2px 0 #278a3c,1px 0 0 #278a3c,-1px 0 0 #278a3c;
}
.hero-caption strong{
  display:block;
  margin-top:5px;
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(38px,6vw,68px);
  line-height:.95;
  color:#fff;
  -webkit-text-stroke:2px rgba(37,116,47,.88);
  text-shadow:0 4px 0 #277d35,2px 0 0 #277d35,-2px 0 0 #277d35;
}
.immersive-curve{display:none!important;}
.immersive-content{position:relative;z-index:1;}
.chapter-content{margin-top:0;padding-top:26px;}
.chapter-content .reading-card{position:relative;z-index:2;margin-top:0;}

/* mobile-first: base (era @media (max-width:520px)) */
  .immersive-media{aspect-ratio:16/10;}
  .hero-curve-overlay{height:27%;}
  .hero-caption{left:27px;bottom:23%;max-width:84%;}
  .hero-caption span{font-size:18px;}
  .hero-caption strong{font-size:39px;-webkit-text-stroke:1.5px rgba(37,116,47,.88);}
  .chapter-content{padding-top:24px;}
/* fim: era @media (max-width:520px) */

/* ===== Biblinha v1.14 — separação livro/capítulo + hero sticky ===== */
/* Tela do livro: capa normal. A curva pertence somente ao texto do capítulo. */
.book-immersive-hero{
  overflow:hidden;
  border-radius:0 0 30px 30px;
  margin-bottom:18px;
}
.book-immersive-hero .immersive-media{
  aspect-ratio:16/9;
}
.book-immersive-hero .hero-caption{
  bottom:20px;
}
.book-immersive-hero + .immersive-content{
  padding-top:16px;
}

/* Tela do capítulo: hero curvo e fixável. */
.chapter-immersive-hero{
  position:sticky;
  top:0;
  z-index:40;
  margin-bottom:0;
  border-radius:0;
  overflow:visible;
  box-shadow:none;
}
.chapter-immersive-hero .immersive-media{
  height:clamp(245px,62.5vw,520px);
  aspect-ratio:auto;
  transition:height .34s cubic-bezier(.2,.8,.2,1);
  will-change:height;
}

/* Curva: preenchimento e borda são separados para a linha ficar realmente visível. */
.chapter-immersive-hero .hero-curve-overlay{
  height:27%;
  bottom:-1px;
  overflow:visible;
  transition:height .34s cubic-bezier(.2,.8,.2,1);
}
.chapter-immersive-hero .hero-curve-fill{
  fill:var(--green);
  stroke:none;
}
.chapter-immersive-hero .hero-curve-line{
  fill:none;
  stroke:#c9f0ad;
  stroke-width:4;
  vector-effect:non-scaling-stroke;
  stroke-linecap:round;
  filter:drop-shadow(0 1px 0 rgba(70,132,45,.10));
}

/* Cores da referência: frase verde com contorno claro; nome do livro branco com sombra escura. */
.chapter-immersive-hero .hero-caption span,
.book-immersive-hero .hero-caption span{
  color:#45b83f;
  -webkit-text-stroke:1.7px rgba(245,255,238,.95);
  text-shadow:0 2px 0 rgba(39,125,50,.52),1px 0 0 rgba(39,125,50,.20),-1px 0 0 rgba(39,125,50,.20);
}
.chapter-immersive-hero .hero-caption strong,
.book-immersive-hero .hero-caption strong{
  color:#fff;
  -webkit-text-stroke:1.4px rgba(66,67,53,.58);
  text-shadow:0 4px 0 rgba(48,54,39,.40),1px 0 0 rgba(48,54,39,.25),-1px 0 0 rgba(48,54,39,.25);
}

/* O conteúdo não fica por baixo do hero sticky. */
.chapter-content{
  padding-top:26px;
}

/* Estado compacto ao rolar a leitura. */
.chapter-immersive-hero.is-compact .immersive-media{
  height:112px;
}
.chapter-immersive-hero.is-compact .hero-curve-overlay{
  height:34px;
}
.chapter-immersive-hero.is-compact .hero-caption{
  left:76px;
  bottom:22px;
  max-width:calc(100% - 150px);
}
.chapter-immersive-hero.is-compact .hero-caption span{
  display:none;
}
.chapter-immersive-hero.is-compact .hero-caption strong{
  margin:0;
  font-size:27px;
  line-height:1;
  -webkit-text-stroke:1px rgba(66,67,53,.58);
  text-shadow:0 2px 0 rgba(48,54,39,.40);
}
.chapter-immersive-hero.is-compact .immersive-cover-media{
  animation:none;
  object-position:center 36%;
}
.chapter-immersive-hero .hero-action{
  transition:width .25s ease,height .25s ease,transform .25s ease;
}
.chapter-immersive-hero.is-compact .immersive-nav{
  top:10px;
  left:12px;
  right:12px;
}
.chapter-immersive-hero.is-compact .hero-action{
  width:46px;
  height:46px;
}
.chapter-immersive-hero.is-compact .hero-action img{
  max-width:46px;
  max-height:46px;
}
.chapter-immersive-hero.is-compact .music-toggle-on-hero{
  opacity:0;
  pointer-events:none;
}

/* mobile-first: base (era @media (max-width:520px)) */
  .book-immersive-hero{
    border-radius:0 0 24px 24px;
  }
  .book-immersive-hero .immersive-media{
    aspect-ratio:16/9;
  }
  .book-immersive-hero .hero-caption{
    left:24px;
    bottom:18px;
  }
  .chapter-immersive-hero .immersive-media{
    height:62.5vw;
    min-height:228px;
    max-height:310px;
  }
  .chapter-immersive-hero .hero-curve-overlay{
    height:29%;
  }
  .chapter-immersive-hero .hero-caption{
    left:26px;
    bottom:24%;
  }
  .chapter-immersive-hero .hero-caption span{
    font-size:18px;
  }
  .chapter-immersive-hero .hero-caption strong{
    font-size:40px;
  }
  .chapter-immersive-hero.is-compact .immersive-media{
    height:104px;
    min-height:104px;
  }
  .chapter-immersive-hero.is-compact .hero-curve-overlay{
    height:30px;
  }
  .chapter-immersive-hero.is-compact .hero-caption{
    left:72px;
    bottom:20px;
    max-width:calc(100% - 140px);
  }
  .chapter-immersive-hero.is-compact .hero-caption strong{
    font-size:25px;
  }
  .chapter-content{
    padding-top:24px;
  }
/* fim: era @media (max-width:520px) */

/* ===== Biblinha v1.15 — fidelidade ao app antigo ===== */

/* Menu de livros: primeiro livro em destaque + grade infantil 2 colunas no mobile */
.library-books-screen .page-heading{display:none;}
.library-book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}
.library-book-card{position:relative;display:block;aspect-ratio:1/1;border-radius:28px;overflow:hidden;text-decoration:none;background:#f3ead8;box-shadow:0 8px 0 rgba(86,135,55,.16),0 13px 24px rgba(65,105,44,.10);isolation:isolate;transition:transform .22s var(--ease-spring),box-shadow .22s ease;}
.library-book-card:hover{transform:translateY(-5px) scale(1.012);box-shadow:0 11px 0 rgba(86,135,55,.14),0 18px 30px rgba(65,105,44,.13);}
.library-book-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .65s var(--ease-smooth);}
.library-book-card:hover img{transform:scale(1.045);}
.library-book-card:after{content:"";position:absolute;z-index:1;inset:46% 0 0;background:linear-gradient(transparent,rgba(28,28,22,.24) 35%,rgba(22,23,18,.55));pointer-events:none;}
.library-book-name{position:absolute;z-index:3;left:16px;right:16px;bottom:14px;font-family:var(--font-display);font-size:clamp(22px,3vw,34px);line-height:1;color:#fff;text-align:center;-webkit-text-stroke:2px #24231f;text-shadow:0 3px 0 #24231f,2px 0 0 #24231f,-2px 0 0 #24231f;}
.library-book-card.is-featured{grid-column:span 2;aspect-ratio:2/1.16;border-radius:34px;clip-path:polygon(3% 7%,50% 0,97% 7%,100% 50%,97% 93%,50% 100%,3% 93%,0 50%);}
.library-book-card.is-featured .library-book-name{text-align:left;left:34px;bottom:30px;font-size:clamp(36px,5vw,58px);}
.library-book-card.is-featured:before{content:"";position:absolute;inset:0;z-index:2;border:5px solid rgba(77,145,255,.76);clip-path:inherit;pointer-events:none;}

/* Tela interna do livro: capa grande no mesmo espírito do app antigo, sem curva da leitura */
.book-immersive-hero.book-stage-oldapp{background:transparent;overflow:visible;border-radius:0;max-width:960px;margin:8px auto 18px;padding:0 18px;box-shadow:none;}
.book-stage-oldapp .immersive-media{aspect-ratio:16/9;border-radius:34px;overflow:hidden;clip-path:polygon(2% 8%,50% 0,98% 8%,100% 50%,98% 92%,50% 100%,2% 92%,0 50%);box-shadow:0 9px 0 rgba(78,139,55,.16),0 16px 28px rgba(54,91,38,.12);}
.book-stage-oldapp .immersive-media:after{content:"";position:absolute;inset:0;z-index:3;background:linear-gradient(transparent 54%,rgba(25,28,20,.34));pointer-events:none;}
.book-stage-oldapp .hero-caption{z-index:7;left:42px;bottom:32px;}
.book-stage-oldapp .hero-caption span{display:none;}
.book-stage-oldapp .hero-caption strong{font-size:clamp(38px,6vw,68px);color:#fff;-webkit-text-stroke:2.2px #25241f;text-shadow:0 4px 0 #25241f,2px 0 0 #25241f,-2px 0 0 #25241f;}
.book-stage-oldapp .immersive-nav{left:30px;right:30px;top:18px;}
.book-stage-oldapp .music-toggle-on-hero{right:34px;bottom:30px;}

/* Texto sobre a capa de leitura: cores do app antigo */
.chapter-immersive-hero .hero-caption span{color:#4eb947!important;-webkit-text-stroke:1.8px #f1efcf!important;text-shadow:0 2px 0 #257a31,1px 0 0 #257a31,-1px 0 0 #257a31!important;}
.chapter-immersive-hero .hero-caption strong{color:#fff!important;-webkit-text-stroke:2.2px #2b2925!important;text-shadow:0 4px 0 #292722,2px 0 0 #292722,-2px 0 0 #292722!important;}
/* Borda clara visível ao longo da curva */
.chapter-immersive-hero .hero-curve-line{stroke:#c9f29e!important;stroke-width:5!important;filter:drop-shadow(0 1px 0 rgba(52,116,37,.18));}

/* mobile-first: base (era @media (max-width:850px)) */
  .library-book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px;}
/* fim: era @media (max-width:850px) */
/* mobile-first: base (era @media (max-width:520px)) */
  .library-books-screen{padding-top:14px;}
  .library-book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px;}
  .library-book-card{border-radius:24px;aspect-ratio:1/1;}
  .library-book-card.is-featured{grid-column:1/-1;aspect-ratio:1.72/1;border-radius:28px;}
  .library-book-card.is-featured .library-book-name{left:30px;bottom:23px;font-size:44px;}
  .library-book-name{left:8px;right:8px;bottom:12px;font-size:26px;-webkit-text-stroke:1.6px #24231f;text-shadow:0 3px 0 #24231f,1px 0 0 #24231f,-1px 0 0 #24231f;}
  .book-immersive-hero.book-stage-oldapp{width:100%;padding:0 18px;margin:8px auto 14px;}
  .book-stage-oldapp .immersive-media{aspect-ratio:1.72/1;border-radius:28px;}
  .book-stage-oldapp .hero-caption{left:34px;bottom:27px;}
  .book-stage-oldapp .hero-caption strong{font-size:43px;-webkit-text-stroke:1.8px #25241f;}
  .book-stage-oldapp .immersive-nav{left:28px;right:28px;top:14px;}
  .book-stage-oldapp .music-toggle-on-hero{right:28px;bottom:24px;}
  .chapter-immersive-hero .hero-caption span{font-size:18px!important;}
  .chapter-immersive-hero .hero-caption strong{font-size:40px!important;-webkit-text-stroke:1.8px #2b2925!important;}
/* fim: era @media (max-width:520px) */

/* =========================================================
   v1.16 — Tela LIVROS apenas
   Mantém o cabeçalho clássico e isola o novo visual do catálogo.
   ========================================================= */
.books-page-heading{margin-bottom:20px}
.books-catalog-grid{position:relative}
.books-catalog-card{
  min-height:218px;
  border-radius:30px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 8px 0 rgba(87,137,54,.15),0 13px 25px rgba(71,107,47,.12);
  transform-origin:50% 85%;
  isolation:isolate;
}
.books-catalog-card .books-cover-frame{position:absolute;inset:0;display:block;overflow:hidden;border-radius:inherit;background:#dff4cb}
.books-catalog-card .books-cover-frame:before{
  content:"";position:absolute;z-index:3;inset:0;border-radius:inherit;
  border:4px solid rgba(255,255,255,.72);pointer-events:none;
  box-shadow:inset 0 0 0 2px rgba(91,155,62,.12)
}
.books-catalog-card .books-cover-frame:after{
  content:"";position:absolute;z-index:2;left:0;right:0;bottom:0;height:58%;
  background:linear-gradient(to bottom,transparent 0%,rgba(30,28,23,.12) 25%,rgba(26,27,20,.74) 100%);pointer-events:none
}
.books-catalog-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.005);transition:transform .72s var(--ease-smooth),filter .4s ease}
.books-catalog-card strong,.books-catalog-card>span:not(.books-cover-frame){z-index:5}
.books-catalog-card strong{bottom:35px;font-size:25px;line-height:1.02;color:#fff;-webkit-text-stroke:1.1px rgba(51,42,33,.9);text-shadow:0 3px 0 rgba(48,39,30,.85),0 3px 8px rgba(0,0,0,.28)}
.books-catalog-card>span:not(.books-cover-frame){bottom:14px;color:#fff;font-size:14px;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.72)}
.books-cover-shine{position:absolute!important;z-index:4!important;top:-25%!important;left:-55%!important;width:34%!important;height:150%!important;bottom:auto!important;background:linear-gradient(100deg,transparent,rgba(255,255,255,.26),transparent);transform:rotate(10deg);opacity:0;pointer-events:none}
.books-catalog-card:hover{transform:translateY(-7px) rotate(-.25deg) scale(1.018);box-shadow:0 11px 0 rgba(87,137,54,.14),0 20px 32px rgba(71,107,47,.16)}
.books-catalog-card:hover img{transform:scale(1.075);filter:saturate(1.08) brightness(1.02)}
.books-catalog-card:hover .books-cover-shine{opacity:1;animation:booksShine .72s ease-out}
@keyframes booksShine{from{left:-55%}to{left:130%}}

/* carregamento infantil — só existe na tela de livros */
.books-loading{position:fixed;z-index:80;inset:0;display:grid;place-items:center;background:rgba(167,223,125,.96);transition:opacity .45s ease,visibility .45s ease}
.books-loading.is-done{opacity:0;visibility:hidden;pointer-events:none}
.books-loading-bubble{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;color:#2d8e3e;font-family:var(--font-display);font-size:24px}
.books-loading-bubble>img{width:108px;height:auto;animation:booksLionBounce 1.05s ease-in-out infinite;filter:drop-shadow(0 8px 8px rgba(67,104,44,.15))}
.books-loading-stars{display:flex;gap:8px;height:18px;align-items:center}
.books-loading-stars i{display:block;width:10px;height:10px;background:#ffdc4b;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 94%,50% 72%,21% 94%,32% 56%,2% 35%,39% 35%);animation:booksStarPop .8s ease-in-out infinite}
.books-loading-stars i:nth-child(2){animation-delay:.14s}.books-loading-stars i:nth-child(3){animation-delay:.28s}
@keyframes booksLionBounce{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(2deg)}}
@keyframes booksStarPop{0%,100%{transform:scale(.55) rotate(0);opacity:.45}50%{transform:scale(1.25) rotate(30deg);opacity:1}}

.books-catalog-grid.is-ready .books-catalog-card{animation:bookCardHello .52s var(--ease-spring) both;animation-delay:min(calc(var(--book-index) * 42ms),420ms)}
@keyframes bookCardHello{0%{opacity:0;transform:translateY(22px) scale(.92)}65%{opacity:1;transform:translateY(-4px) scale(1.018)}100%{opacity:1;transform:none}}

/* mobile-first: base (era @media (max-width:520px)) */
  .books-page-heading{margin-bottom:16px}
  .books-catalog-grid{gap:15px}
  .books-catalog-card{min-height:178px;border-radius:25px}
  .books-catalog-card strong{font-size:21px;bottom:33px;left:13px;right:13px}
  .books-catalog-card>span:not(.books-cover-frame){font-size:13px;bottom:13px;left:13px;right:13px}
  .books-catalog-card .books-cover-frame:before{border-width:3px}
  .books-loading-bubble>img{width:92px}.books-loading-bubble{font-size:21px}
/* fim: era @media (max-width:520px) */
@media(prefers-reduced-motion:reduce){.books-loading-bubble>img,.books-loading-stars i,.books-catalog-grid.is-ready .books-catalog-card{animation:none!important}}

/* =========================================================
   v1.17 — Tela LIVROS: capas quadradas + essência da Home
   Escopo propositalmente restrito às classes books-*.
   ========================================================= */
.books-page-heading{
  position:relative;
  overflow:hidden;
  padding:18px 20px;
  border-radius:30px;
  background:rgba(255,255,255,.88);
  box-shadow:0 7px 0 rgba(87,137,54,.13),0 13px 24px rgba(71,107,47,.09);
  isolation:isolate;
}
.books-page-heading:before,
.books-page-heading:after{
  content:"";
  position:absolute;
  z-index:-1;
  border-radius:50%;
  pointer-events:none;
}
.books-page-heading:before{
  width:120px;height:120px;right:-34px;top:-62px;
  background:rgba(255,223,79,.23);
  animation:booksHeadingBubble 5.8s ease-in-out infinite alternate;
}
.books-page-heading:after{
  width:72px;height:72px;left:43%;bottom:-46px;
  background:rgba(53,200,189,.12);
  animation:booksHeadingBubble 7s -2s ease-in-out infinite alternate-reverse;
}
.books-page-heading>img{width:72px;filter:drop-shadow(0 5px 5px rgba(83,105,51,.13))}
.books-page-heading h1{color:var(--green-dark);text-shadow:0 2px 0 rgba(255,255,255,.8)}
.books-page-heading p{color:var(--ink)}
@keyframes booksHeadingBubble{to{transform:translateY(10px) scale(1.08)}}

.books-catalog-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:20px;
}
.books-catalog-card{
  min-height:0;
  aspect-ratio:1 / 1;
  border-radius:30px;
  box-shadow:0 8px 0 rgba(87,137,54,.15),0 14px 27px rgba(71,107,47,.12);
}
.books-catalog-card .books-cover-frame:after{
  height:55%;
  background:linear-gradient(to bottom,transparent 0%,rgba(34,31,24,.08) 22%,rgba(25,27,20,.72) 100%);
}
.books-catalog-card strong{
  bottom:38px;
  font-size:clamp(20px,2.1vw,27px);
  line-height:1.02;
}
.books-catalog-card>span:not(.books-cover-frame){
  bottom:15px;
  font-size:14px;
}
.books-catalog-card:active{transform:translateY(2px) scale(.965) rotate(.25deg)}

/* Pequeno "oi" visual ao terminar o carregamento, inspirado na Home. */
.books-catalog-grid.is-ready .books-catalog-card:nth-child(odd){transform-origin:48% 88%}
.books-catalog-grid.is-ready .books-catalog-card:nth-child(even){transform-origin:52% 88%}
@keyframes bookCardHello{
  0%{opacity:0;transform:translateY(26px) scale(.88) rotate(-1.4deg)}
  62%{opacity:1;transform:translateY(-5px) scale(1.025) rotate(.45deg)}
  82%{transform:translateY(2px) scale(.992) rotate(-.15deg)}
  100%{opacity:1;transform:none}
}

/* mobile-first: base (era @media (max-width:850px)) */
  .books-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
/* fim: era @media (max-width:850px) */
/* mobile-first: base (era @media (max-width:520px)) */
  .books-page-heading{padding:15px 16px;border-radius:26px;margin-bottom:17px}
  .books-page-heading>img{width:62px}
  .books-page-heading h1{font-size:31px}
  .books-page-heading p{font-size:16px;line-height:1.25}
  .books-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .books-catalog-card{aspect-ratio:1 / 1;border-radius:24px}
  .books-catalog-card strong{left:13px;right:13px;bottom:34px;font-size:20px}
  .books-catalog-card>span:not(.books-cover-frame){left:13px;right:13px;bottom:12px;font-size:12.5px}
  .books-catalog-card .books-cover-frame:before{border-width:3px}
/* fim: era @media (max-width:520px) */
@media(prefers-reduced-motion:reduce){
  .books-page-heading:before,.books-page-heading:after{animation:none!important}
}

/* ============================================================
   Biblinha v2.0 — identidade visual aprovada / gamificação
   ============================================================ */
:root{--cream:#fffaf0;--gold:#f5c33d;--game-brown:#5b321c;--game-green:#77d23c;--game-lime:#b7ef74}

/* menu aprovado — versão A */
.drawer-v2{width:min(88vw,390px);background:linear-gradient(160deg,#31c8be 0 34%,#fffaf0 34% 100%);border-radius:0 72px 72px 0;overflow-y:auto;padding-bottom:90px;box-shadow:20px 0 45px rgba(20,70,55,.22)}
.drawer-v2 .drawer-user{min-height:215px;padding:35px 28px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center}
.drawer-v2 .avatar-circle{width:112px;height:112px;background:#fff;border:5px solid rgba(255,255,255,.7);box-shadow:0 8px 0 rgba(28,120,111,.18);overflow:hidden}
.drawer-v2 .avatar-circle img{width:100%;height:100%;object-fit:contain;padding:8px}
.drawer-v2 .drawer-user strong{font-family:var(--font-display);font-size:34px;margin-top:12px;text-shadow:0 3px 0 rgba(0,0,0,.08)}
.drawer-v2 nav{padding:6px 24px 20px}
.drawer-v2 nav>a,.drawer-v2 .drawer-form button{min-height:68px;border-bottom:1px solid #eadfcf;background:transparent;color:var(--game-brown);display:grid;grid-template-columns:50px 1fr auto auto;gap:8px;align-items:center;padding:8px 6px;font-size:20px;text-decoration:none;width:100%;border-left:0;border-right:0;border-top:0;text-align:left}
.drawer-v2 nav>a:hover,.drawer-v2 .drawer-form button:hover{transform:translateX(5px);background:#fff7e8;border-radius:18px}
.drawer-v2 nav img,.drawer-v2 .drawer-form img{width:42px;height:42px;object-fit:contain}.drawer-v2 nav span{font-size:34px;color:#bea982}.drawer-v2 nav small{font-size:11px;background:#ffd45f;color:#95531d;border-radius:999px;padding:6px 8px;white-space:nowrap}.drawer-garden{position:absolute;left:0;right:0;bottom:0;height:72px;display:flex;align-items:end;justify-content:center;font-size:32px;letter-spacing:18px;color:#69b33c;background:linear-gradient(transparent,#d5f0a7)}

/* Home mais próxima da opção 1 aprovada */
.hero-home{background:linear-gradient(145deg,#fffbe9,#f4f7e6);border:2px solid rgba(255,255,255,.85);box-shadow:0 10px 0 rgba(77,129,50,.16),0 24px 46px rgba(58,99,39,.12)}
.guest-callout{border:2px solid rgba(255,255,255,.8);box-shadow:0 9px 0 rgba(77,129,50,.14)}
.action-grid{grid-template-columns:1fr;max-width:850px}.action-card{min-height:104px;border:2px solid rgba(255,255,255,.85);box-shadow:0 8px 0 rgba(77,129,50,.16)}
.action-card b{font-family:var(--font-display);font-size:27px}.game-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.game-shortcuts a{background:#fffaf0;border-radius:28px;padding:16px;display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink);box-shadow:0 8px 0 rgba(77,129,50,.15)}.game-shortcuts img{width:66px;height:66px;object-fit:contain}.game-shortcuts span{display:flex;flex-direction:column}.game-shortcuts b{font-family:var(--font-display);font-size:24px;color:#288f3b}.game-shortcuts small{font-size:14px;color:#665a50}

/* Livros — cards quadrados e lúdicos */
.books-page-heading{background:linear-gradient(145deg,#fffbed,#f6f8e7);border:2px solid white;box-shadow:0 9px 0 rgba(77,129,50,.15)}
.books-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:900px;margin:0 auto}.books-catalog-card{background:transparent;box-shadow:none;padding:0;text-align:left}.books-cover-frame{aspect-ratio:1/1;border-radius:28px;border:6px solid rgba(255,255,255,.92);box-shadow:0 8px 0 rgba(71,101,50,.25),0 14px 25px rgba(50,80,34,.12);overflow:hidden}.books-catalog-card strong{font-family:var(--font-display);font-size:24px;color:#fff;text-shadow:0 3px 0 #4d443e;margin:-58px 14px 0;position:relative;z-index:3}.books-catalog-card>span:last-child{position:relative;z-index:3;color:#fff;text-shadow:0 2px 0 #4d443e;margin:4px 14px 18px;font-size:14px}

/* capítulos — opção 1 aprovada */
.book-content{background:linear-gradient(#d9f6af,#c8ee91);border-radius:34px 34px 0 0}.chapter-card-visual{background:linear-gradient(145deg,#fffef8,#fff8eb);border:2px solid #fff;box-shadow:0 8px 0 rgba(101,152,65,.20),0 12px 18px rgba(59,99,39,.08)}.chapter-card-visual .chapter-thumb{border:4px solid #fff;box-shadow:0 4px 0 rgba(94,77,54,.12)}.chapter-card-visual .chapter-copy>b{color:#d65331;font-size:28px}.chapter-card-visual:after{content:'›';font-size:46px;color:#5b432f;line-height:1}.chapter-check{z-index:3}

/* leitura — card claro / opção 3 */
.chapter-content{background:linear-gradient(180deg,#b8e8f5 0,#dff4e8 58%,#d9efba 100%);padding-top:34px!important;min-height:70vh}.chapter-content .reading-card{background:rgba(255,253,247,.96);border:3px solid rgba(255,255,255,.86);box-shadow:0 9px 0 rgba(65,127,112,.14),0 20px 40px rgba(44,91,82,.10);border-radius:38px}.chapter-content .reading-card h2{font-family:var(--font-display);color:#278f42}.chapter-content .reading-card p,.chapter-content .reading-card .chapter-text{font-family:OupsClean,var(--font-ui);font-size:20px;line-height:1.65}.reading-progress-wrap{background:#fffaf2;border-radius:26px;border:2px solid white;box-shadow:0 6px 0 rgba(101,86,65,.09)}

/* game shared */
.game-screen,.quiz-v2,.quiz-result-v2{width:min(100%,780px);margin:-18px auto 0;border-radius:40px;min-height:calc(100vh - 130px);min-height:calc(100dvh - 130px);padding:16px 24px 54px;position:relative;overflow:hidden;background:#b8ed78;box-shadow:0 12px 35px rgba(62,97,43,.12)}
.game-screen:before,.quiz-v2:before,.quiz-result-v2:before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 18%,rgba(255,255,190,.55),transparent 33%),radial-gradient(circle at 10% 70%,rgba(255,255,255,.2),transparent 25%);z-index:0}.game-screen>* ,.quiz-v2>* ,.quiz-result-v2>*{position:relative;z-index:1}
.game-top-art{text-align:center;height:116px}.game-top-art img,.quiz-v2-top img{height:112px;max-width:80%;object-fit:contain}.game-panel{background:linear-gradient(145deg,#fffdf3,#fff7df);border:3px solid rgba(255,255,255,.88);border-radius:34px;box-shadow:0 8px 0 rgba(103,132,65,.16),0 18px 28px rgba(66,93,44,.09)}.game-panel h1{font-family:var(--font-display);color:#267f37;margin:0;font-size:clamp(34px,calc(7 * var(--app-vw)),54px);line-height:1}.game-panel p{margin:8px 0 0}.game-cta{display:block;width:min(92%,560px);margin:20px auto 0;padding:20px 26px;border:0;border-radius:30px;text-decoration:none;text-align:center;font-family:var(--font-display);font-size:clamp(28px,calc(5 * var(--app-vw)),42px);cursor:pointer;box-shadow:0 8px 0 rgba(73,94,39,.25),inset 0 2px 0 rgba(255,255,255,.7);transition:.18s transform}.game-cta:active{transform:translateY(5px);box-shadow:0 3px 0 rgba(73,94,39,.22)}.game-cta-green{background:linear-gradient(#7be33f,#38aa24);color:#fff;text-shadow:0 2px 0 rgba(35,91,25,.32);border:3px solid #d8ff8a}.game-cta-yellow{background:linear-gradient(#ffd956,#f4a900);color:#fff;text-shadow:0 2px 0 rgba(120,73,0,.4);border:3px solid #fff1a8}.game-cta-disabled{background:#d7d4ca;color:#827f77}.game-note{text-align:center;color:#5e482c;font-size:17px}.feature-status{margin:18px auto 0;max-width:650px;padding:12px 16px;border-radius:18px;background:rgba(255,255,255,.55);color:#6b604f;text-align:center;font-size:13px}

/* roleta */
.roulette-screen{background:#b9f26b url('../img/backgrounds/bg-roulette.webp') center/cover no-repeat}.roulette-title-art{display:block;width:min(96%,690px);margin:0 auto -4px}.roulette-stage{width:min(92vw,570px);aspect-ratio:1;position:relative;margin:0 auto}.roulette-wheel{width:100%;height:100%;object-fit:contain;display:block;transform-origin:center;transition:transform 4.8s cubic-bezier(.12,.72,.08,1)}.roulette-pin{position:absolute;width:76px;top:-20px;left:50%;transform:translateX(-50%);filter:drop-shadow(0 7px 5px rgba(90,54,12,.28));z-index:3}.roulette-stage.is-spinning .roulette-wheel{transform:rotate(1785deg)}

/* collection */
.collection-screen{background:linear-gradient(rgba(198,244,145,.82),rgba(178,234,112,.9)),url('../img/backgrounds/bg-pattern.webp') center/cover}.collection-heading{padding:18px 22px;display:flex;align-items:center;gap:18px}.collection-book{width:95px;height:110px;border-radius:18px;background:linear-gradient(145deg,#7b4c21,#4f2c13);color:#ffd33d;font-size:52px;display:grid;place-items:center;box-shadow:inset 0 0 0 4px #a46a30}.collection-counter{display:inline-block;margin-top:10px;background:#fff7dc;padding:7px 15px;border-radius:999px;color:#366f2f}.cards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.collect-card{background:#fff9e9;border:4px solid #fff;border-radius:24px;padding:8px;box-shadow:0 7px 0 rgba(95,125,62,.18);position:relative;overflow:hidden}.collect-card-image{aspect-ratio:4/3;border-radius:17px;overflow:hidden;background:linear-gradient(135deg,#dff3ff,#fff0c5)}.collect-card-image img{width:100%;height:100%;object-fit:cover}.collect-card>strong{display:block;text-align:center;font-family:var(--font-display);font-size:23px;color:#4b321e;margin-top:6px}.collect-card>small{display:block;text-align:center;background:#fff3c2;border-radius:999px;padding:4px;margin:5px auto 0;width:max-content;max-width:95%}.rarity-badge{position:absolute;z-index:2;top:9px;left:9px;padding:5px 10px;border-radius:10px;background:#69b834;color:#fff}.rarity-rara .rarity-badge{background:#2d98e6}.rarity-epica .rarity-badge{background:#974bc8}.rarity-lendaria .rarity-badge{background:#ed8a1f}.collect-card.is-locked{filter:none;opacity:1}.placeholder-card{display:grid;place-items:center;font-size:56px;color:#e6ba34}.collection-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:center;margin-top:18px}.duplicate-pill{background:#fff7d9;border-radius:999px;padding:11px 18px;box-shadow:0 5px 0 rgba(87,104,59,.12)}

/* envelope */
.envelope-screen{background:#bff185 url('../img/backgrounds/bg-cards.webp') center/cover no-repeat}.envelope-stage{height:430px;display:grid;place-items:center;position:relative;margin-top:-10px}.envelope-pack{position:absolute;width:min(74%,440px);max-height:360px;object-fit:contain;filter:drop-shadow(0 16px 15px rgba(84,67,26,.2));transition:opacity .4s,transform .65s cubic-bezier(.2,.85,.2,1.15)}.envelope-pack.is-open{opacity:0;transform:scale(.75)}.envelope-screen.is-opened .is-sealed{opacity:0;transform:scale(.8) rotate(-5deg)}.envelope-screen.is-opened .is-open{opacity:1;transform:scale(1.04)}.magic-burst{position:absolute;width:330px;height:330px;border-radius:50%;background:radial-gradient(circle,#fffbd2 0,rgba(255,226,55,.55) 18%,rgba(255,206,0,.12) 55%,transparent 70%);opacity:.25;transform:scale(.65);transition:.6s}.envelope-screen.is-opened .magic-burst{opacity:1;transform:scale(1.4);animation:burstPulse 1.2s ease-out}

/* store */
.store-screen{background:linear-gradient(rgba(194,241,139,.86),rgba(173,230,104,.9)),url('../img/backgrounds/bg-cards.webp') center/cover fixed}.store-heading{padding:20px;display:flex;gap:18px;align-items:center}.store-icon{font-size:66px}.wallet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.wallet-grid>div{background:#fff8e5;border:3px solid #fff;border-radius:22px;padding:12px;display:grid;grid-template-columns:50px 1fr;grid-template-rows:auto auto;align-items:center;box-shadow:0 6px 0 rgba(84,111,57,.13)}.coin-art{grid-row:1/3;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:4px solid rgba(255,255,255,.55);font-size:24px}.coin-art.bronze{background:#c66d2c}.coin-art.silver{background:#b8c2c8}.coin-art.gold{background:#f4b800}.wallet-grid b{font-size:15px}.wallet-grid strong{font-size:25px;color:#4f321d}.store-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.shop-card{background:#fff9e8;border:3px solid #fff;border-radius:25px;padding:14px;text-align:center;box-shadow:0 7px 0 rgba(94,121,61,.15);position:relative}.shop-card.featured{border-color:#ffd44e;transform:translateY(-3px)}.shop-card img{width:130px;height:120px;object-fit:contain}.shop-card h3{font-family:var(--font-display);font-size:22px;margin:4px 0;color:#51351e}.shop-card p{font-size:13px;min-height:42px}.shop-buy{width:100%;border:0;border-radius:18px;padding:11px;background:linear-gradient(#67d82d,#3aa51d);color:#fff;font-size:17px;box-shadow:0 5px 0 rgba(59,101,35,.2)}.shop-ribbon{position:absolute;right:-5px;top:-12px;background:#ef5c3c;color:#fff;border-radius:8px;padding:5px 8px;font-size:11px;text-transform:uppercase}.pix-panel{margin-top:16px;background:#fff8e7;border:3px solid white;border-radius:25px;padding:14px 18px;display:grid;grid-template-columns:64px 1fr auto;align-items:center;gap:12px;box-shadow:0 6px 0 rgba(92,118,61,.13)}.pix-panel>div:first-child{font-size:46px}.pix-panel h2{font-family:var(--font-display);margin:0;color:#55351e}.pix-panel p{margin:3px 0}.pix-panel button{background:#ffbd29;border:0;border-radius:18px;padding:14px;color:#6d431a;font-family:var(--font-display);font-size:18px}

/* quiz aprovado */
.quiz-v2{background:linear-gradient(rgba(186,241,113,.85),rgba(159,226,92,.92)),url('../img/backgrounds/bg-pattern.webp') center/cover}.quiz-v2-top{text-align:center;height:120px}.quiz-kicker{margin:8px auto 0;background:#047a83;color:#fff;border:4px solid #f7d44c;outline:2px dashed rgba(255,255,255,.45);outline-offset:-8px;border-radius:22px;width:max-content;max-width:92%;padding:12px 22px;font-family:var(--font-display);font-size:27px;box-shadow:0 6px 0 rgba(55,88,48,.15)}.quiz-line{height:16px;background:#fff8e9;border:3px solid #f4b924;border-radius:999px;margin:22px auto;width:76%;overflow:hidden}.quiz-line i{display:block;height:100%;background:linear-gradient(90deg,#ffb500,#ffd648)}.quiz-v2 h1{text-align:center;font-family:var(--font-display);font-size:clamp(34px,7vw,58px);line-height:1.08;color:#ef561b;text-shadow:0 3px 0 #fff;margin:24px auto 28px;max-width:700px}.quiz-v2-options{display:grid;gap:14px;max-width:700px;margin:0 auto}.quiz-v2-options button{min-height:94px;background:linear-gradient(145deg,#fffdf8,#fff8e9);border:4px solid #f7d45e;border-radius:30px;box-shadow:0 8px 0 rgba(120,94,34,.2);display:grid;grid-template-columns:82px 1fr;align-items:center;padding:8px 22px 8px 10px;cursor:pointer;color:#59341d;text-align:left}.quiz-v2-options b{font-size:22px}.answer-letter{width:70px;height:70px;border-radius:22px;display:grid;place-items:center;color:#fff;font-family:var(--font-display);font-size:46px;box-shadow:0 5px 0 rgba(0,0,0,.14),inset 0 2px 0 rgba(255,255,255,.65)}.letter-0{background:#ee3f77}.letter-1{background:#29a6e6}.letter-2{background:#71c82f}.letter-3{background:#9552d6}

/* resultados */
.quiz-result-v2{background:linear-gradient(rgba(188,242,115,.88),rgba(151,223,84,.94)),url('../img/backgrounds/bg-pattern.webp') center/cover;text-align:center}.quiz-result-v2.is-loss{background:linear-gradient(rgba(199,242,128,.92),rgba(177,226,105,.96)),url('../img/backgrounds/bg-pattern.webp') center/cover}.quiz-v2-top{text-align:center;height:118px}.result-lion{width:180px;height:180px;object-fit:contain;filter:drop-shadow(0 10px 12px rgba(95,69,24,.18));margin:2px auto}.quiz-result-v2 h2{font-family:var(--font-display);font-size:34px;color:#259342;margin:0}.quiz-result-v2.is-loss h2{color:#e7502c;font-size:42px}.quiz-result-v2 h1{font-family:var(--font-display);font-size:52px;color:#e84d24;margin:4px 0 18px}.result-subtitle{font-size:18px;max-width:560px;margin:0 auto 18px}.result-card{max-width:620px;margin:14px auto;background:#fffaf0;border:3px solid white;border-radius:28px;box-shadow:0 7px 0 rgba(92,122,60,.14);padding:18px;display:flex;align-items:center;gap:18px;text-align:left}.result-card h3{font-family:var(--font-display);font-size:24px;color:#248d3e;margin:0}.result-card p{margin:4px 0;font-size:17px}.result-check{width:72px;height:72px;border-radius:50%;background:#5fc82b;color:white;display:grid;place-items:center;font-size:50px;flex:0 0 auto}.result-progress{height:17px;border-radius:999px;background:#e6e2d9;overflow:hidden;margin:9px 0}.result-progress i{display:block;height:100%;background:linear-gradient(90deg,#ef3d7b,#ff759c)}.correct-answer h3{color:#dc4a2b}.tip{background:#fff4c9}

@keyframes burstPulse{0%{transform:scale(.4);opacity:0}60%{opacity:1}100%{transform:scale(1.4);opacity:.7}}

/* mobile-first: base (era @media (max-width:700px)) */
  .game-screen,.quiz-v2,.quiz-result-v2{margin:-6px -6px 0;width:calc(100% + 12px);border-radius:30px;padding:10px 14px 40px;min-height:calc(100vh - 115px);min-height:calc(100dvh - 115px)}
  .game-shortcuts{grid-template-columns:1fr}.store-grid{grid-template-columns:1fr 1fr}.shop-card.featured{grid-column:1/-1}.wallet-grid{gap:6px}.wallet-grid>div{grid-template-columns:38px 1fr;padding:9px}.coin-art{width:36px;height:36px;font-size:18px}.wallet-grid strong{font-size:19px}.cards-grid{gap:10px}.collection-heading{padding:15px}.collection-book{width:72px;height:85px;font-size:40px}.collection-heading h1{font-size:34px}.envelope-stage{height:350px}.envelope-pack{width:78%}.roulette-pin{width:60px;top:-14px}.quiz-v2-options button{min-height:82px;grid-template-columns:68px 1fr;padding-right:12px}.answer-letter{width:58px;height:58px;font-size:38px;border-radius:18px}.quiz-v2-options b{font-size:18px}.pix-panel{grid-template-columns:50px 1fr}.pix-panel button{grid-column:1/-1}.drawer-v2{width:90vw}
/* fim: era @media (max-width:700px) */

/* ==========================================================
   v2.1 — Roleta diária real
   ========================================================== */
.roulette-v3{overflow:hidden}
.roulette-v3 .roulette-title-art{margin-top:4px}
.roulette-v3 .roulette-stage{cursor:pointer;touch-action:manipulation;outline:none;isolation:isolate}
.roulette-v3 .roulette-stage:focus-visible{filter:drop-shadow(0 0 0.6rem rgba(255,255,255,.95))}
.roulette-v3 .roulette-stage.is-locked{cursor:default;filter:saturate(.82)}
.roulette-v3 .roulette-wheel{transition:none;will-change:transform;z-index:2;position:relative}
.roulette-v3 .roulette-stage.is-spinning .roulette-wheel{transform:none}
.roulette-v3 .roulette-pin{z-index:7;transform-origin:50% 22%}
.roulette-v3 .roulette-stage.is-spinning .roulette-pin{animation:roulettePinTick .16s ease-in-out infinite alternate}
.roulette-glow{position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,rgba(255,244,95,.62),rgba(255,230,58,.18) 45%,transparent 72%);opacity:.2;z-index:0;transition:.25s}
.roulette-stage.is-spinning .roulette-glow{opacity:.95;animation:rouletteGlow 1s ease-in-out infinite alternate}
.roulette-tap-hint{position:absolute;z-index:8;left:50%;bottom:4%;transform:translateX(-50%);white-space:nowrap;background:rgba(54,126,43,.88);color:#fff;border:3px solid rgba(255,255,255,.86);box-shadow:0 5px 0 rgba(55,92,38,.2);padding:8px 15px;border-radius:999px;font-family:var(--font-display);font-size:16px;pointer-events:none;animation:rouletteHint 1.35s ease-in-out infinite}
.roulette-stage.is-spinning .roulette-tap-hint{opacity:0}
.roulette-sparkles{position:absolute;inset:-10%;z-index:9;pointer-events:none;overflow:visible}
.roulette-sparkles i{position:absolute;width:11px;height:11px;background:#fff7a7;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);filter:drop-shadow(0 0 6px #ffd51e);animation:rouletteSpark 1.25s ease-out forwards}
.roulette-status-panel{width:min(94%,650px);margin:14px auto 0;padding:14px 18px;background:rgba(255,250,232,.94);border:3px solid rgba(255,255,255,.92);border-radius:24px;box-shadow:0 7px 0 rgba(88,112,57,.14);display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;color:#57381f}
.roulette-status-panel strong{font-family:var(--font-display);font-size:23px;color:#28863b}
.roulette-status-panel span{font-size:14px;line-height:1.35}
.roulette-status-panel a{margin-top:5px;background:linear-gradient(#73db38,#3dad24);color:#fff;text-decoration:none;border-radius:999px;padding:9px 18px;font-family:var(--font-display);box-shadow:0 4px 0 rgba(61,105,38,.2)}
.roulette-status-panel.is-success{animation:statusPop .45s var(--ease-smooth)}
.roulette-odds{width:min(94%,650px);margin:12px auto 0;background:rgba(255,255,255,.62);border-radius:18px;padding:10px 14px;color:#5b472d}
.roulette-odds summary{cursor:pointer;text-align:center;font-family:var(--font-display);font-size:16px}
.roulette-odds-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}
.roulette-odds-grid div{display:flex;justify-content:space-between;gap:10px;background:#fff9e8;padding:8px 10px;border-radius:12px}
.roulette-odds-grid b{font-size:13px}.roulette-odds-grid span{font-weight:800;color:#2f8d3e}
@keyframes roulettePinTick{from{transform:translateX(-50%) rotate(-8deg)}to{transform:translateX(-50%) rotate(8deg)}}
@keyframes rouletteGlow{from{transform:scale(.94)}to{transform:scale(1.08)}}
@keyframes rouletteHint{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.06)}}
@keyframes rouletteSpark{0%{opacity:0;transform:scale(.2) rotate(0)}25%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1.5) rotate(180deg)}}
@keyframes statusPop{0%{transform:scale(.96)}100%{transform:scale(1)}}
/* mobile-first: base (era @media (max-width:520px)) */.roulette-v3 .roulette-title-art{width:98%}.roulette-v3 .roulette-stage{width:96vw;margin-left:calc(50% - 48vw)}.roulette-tap-hint{font-size:14px;bottom:2%}.roulette-status-panel{margin-top:10px}/* fim: era @media (max-width:520px) */
/* D13/D14 etapa 5: coleção real (número, fora de circulação, estado vazio). */
.collect-card-number{position:absolute;z-index:2;top:9px;right:9px;padding:5px 9px;border-radius:10px;background:rgba(75,50,30,.72);color:#fff;font-size:12px}.collect-card.is-retired{filter:grayscale(.35)}.collect-card.is-locked.has-art{filter:none;opacity:1}.collect-card.is-locked .collect-card-image{position:relative}.collect-card.is-locked .collect-card-image{background:none;color:#666}.collect-card.is-locked .collect-card-image img{filter:brightness(0) invert(.4)}.collect-card.is-locked .collect-card-image::after{content:"";position:absolute;z-index:1;top:50%;left:50%;width:clamp(18px,22%,30px);aspect-ratio:1;transform:translate(-50%,-50%);background:url('../img/icons/icon-lock.webp') center/contain no-repeat;opacity:.82;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25));pointer-events:none}.collect-card>small.collect-card-status{background:#f1e4d0;color:#7a4b1f;font-weight:700}.collection-empty{grid-column:1/-1;text-align:center;background:#fff9e9;border-radius:18px;padding:18px;color:#4b321e}
/* Catálogo da coleção real: 4 por linha, a arte como item principal.
   Toda carta é 1024x1536 (2:3): a caixa reserva essa proporção e o contain
   garante a imagem inteira, sem corte em cima, embaixo ou nas laterais.
   A demo legada (.cards-grid sem .is-catalog) continua 2 por linha. */
.cards-grid.is-catalog{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cards-grid.is-catalog .collect-card{background:none;border:0;padding:0;border-radius:0;box-shadow:none}
.cards-grid.is-catalog .collect-card-image{aspect-ratio:2/3;border-radius:0;background:none}
.cards-grid.is-catalog .collect-card-image img{object-fit:contain}
.cards-grid.is-catalog .rarity-badge{top:4px;left:4px;padding:1px 5px;border-radius:6px;font-size:9px;line-height:1.3;max-width:calc(100% - 8px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cards-grid.is-catalog .collect-card>small{font-size:10px;padding:2px 6px;margin-top:3px;max-width:100%}
.cards-grid.is-catalog .placeholder-card{font-size:26px}
/* Repetidas: cópias extras (+N) no canto inferior direito da arte, pequeno e
   sobre a moldura, longe do selo de raridade (que segue inteiro). O texto por
   extenso é só para leitores de tela. */
.cards-grid.is-catalog .collect-card-image{position:relative}
.cards-grid.is-catalog .collect-card-extra{position:absolute;z-index:2;right:4px;bottom:4px;min-width:20px;padding:1px 6px;border-radius:999px;background:linear-gradient(#3fbd3a,#1f8d29);color:#fff;font-size:11px;font-weight:900;line-height:1.35;text-align:center;box-shadow:0 1px 0 #16701f,0 2px 4px rgba(0,0,0,.25);font-variant-numeric:tabular-nums}
.cards-grid.is-catalog .collect-card-extra>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}/* Card da coleção: ícone + textos + progresso e, na mesma caixa, as ações
   Repetidas e Abrir envelope (antes numa barra solta abaixo do card). */
.collection-card{position:relative;overflow:hidden;padding:14px;margin-top:4px}
.collection-card-leaf{position:absolute;z-index:0;pointer-events:none;user-select:none;opacity:.5}
.collection-card-leaf-a{width:74px;left:-24px;bottom:-24px;transform:rotate(-14deg)}
.collection-card-leaf-b{width:58px;right:-18px;top:-20px;transform:rotate(152deg)}
.collection-card-top{position:relative;z-index:1;display:flex;align-items:center;gap:10px}
.collection-card-icon{width:clamp(72px,22vw,104px);height:auto;flex:none;filter:drop-shadow(0 4px 6px rgba(90,70,30,.2))}
.collection-card-text{min-width:0;flex:1}
.collection-card h1{font-size:clamp(25px,calc(5.6 * var(--app-vw)),40px);line-height:1.02}
.collection-card p{margin:5px 0 0;font-size:14px;line-height:1.25;color:#6a5334}
.collection-card .collection-counter{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 13px;font-size:14px;max-width:100%}
.collection-card .collection-counter>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.collection-card .collection-counter img{width:19px;height:auto;flex:none}
.collection-card .collection-counter b{color:#2d7a2a}
/* Envelopes do perfil: as pílulas da carteira da Loja (.loja3-chip.is-envelope),
   lado a lado com a mesma largura, entre o progresso e as ações. */
.collection-envelopes{position:relative;z-index:1;display:flex;gap:8px;margin-top:12px}
.collection-envelopes .loja3-chip{flex:1 1 0}
.collection-card-actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;margin-top:12px}
/* As duas ações são o botão da Loja (.loja3-buy.is-small, no v3.css) — fundo,
   relevo, :active e :focus-visible vêm de lá. Aqui só o que é da Coleção: o
   lugar de cada uma na linha (Repetidas ocupa o que o texto pede, o envelope
   fica com a sobra), o tamanho do ícone e as reticências do rótulo, para não
   cortar em 360px. O estado do filtro é a variante azul do próprio componente:
   ligado = verde padrão, desligado = .is-blue, sempre com o aria-current. */
.collection-action-repeated,.collection-action-open{min-width:0}
/* O .loja3-buy é width:100% (faz sentido sozinho no card da Loja); aqui as duas
   dividem a mesma linha, então o Repetidas volta à largura do conteúdo, senão
   empurraria o envelope para a linha de baixo. Seletor duplo porque o
   componente mora no v3.css, que carrega depois deste arquivo e ganharia no
   width com specificity igual. No "Abrir envelope" o flex-basis de 150px já
   manda no tamanho principal, e o width nem chega a valer. */
.collection-card-actions .collection-action-repeated{flex:0 1 auto;width:auto}
.collection-action-open{flex:1 1 150px}
.collection-action-repeated img,.collection-action-open img{width:clamp(20px,5.4vw,28px);height:auto;flex:none}
.collection-action-repeated>span,.collection-action-open>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Filtros de raridade: barra compacta de uma linha. O botão de filtro (ou a seta)
   abre a lista inteira em várias linhas; fechada, os chips rolam na horizontal. */
.collection-filters{display:flex;align-items:center;gap:6px;margin-top:14px;padding:5px 6px 5px 5px;background:linear-gradient(#fffdf6,#fff6e3);border:2px solid #f0d58e;border-radius:20px;box-shadow:0 4px 0 rgba(150,118,48,.2),inset 0 2px 0 #fff}
.collection-filters-toggle,.collection-filters-more{flex:none;padding:0;border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.collection-filters-toggle{width:42px;height:42px;border-radius:12px;transition:transform .15s,filter .15s}
.collection-filters-toggle img{display:block;width:100%;height:100%;object-fit:contain}
.collection-filters-toggle:active{transform:translateY(2px)}
.collection-filters.is-open .collection-filters-toggle{filter:brightness(1.12) saturate(1.15)}
.collection-filters-toggle:focus-visible,.collection-filter:focus-visible{outline:3px solid #2d7a2a;outline-offset:2px}
.collection-filters-list{flex:1;min-width:0;position:relative;display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding:3px 2px 5px;--fade-l:0px;--fade-r:22px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent);mask-image:linear-gradient(90deg,transparent,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent)}
.collection-filters-list::-webkit-scrollbar{display:none}
.collection-filter{flex:none;scroll-snap-align:start;display:inline-flex;align-items:center;min-height:32px;padding:4px 13px;border-radius:999px;background:#f8ead2;color:#5b3718;text-decoration:none;white-space:nowrap;font-family:var(--font-display);font-size:clamp(13px,calc(3.6 * var(--app-vw)),16px);line-height:1;box-shadow:inset 0 -2px 0 rgba(160,112,60,.12)}
.collection-filter.is-active{background:linear-gradient(#3fbd3a,#1f8d29);color:#fff;text-shadow:0 1px 0 rgba(20,70,20,.35);box-shadow:0 3px 0 #16701f,inset 0 2px 0 rgba(255,255,255,.3)}
.collection-filters-more{width:30px;height:36px;display:grid;place-items:center;color:#6b3d14}
.collection-filters-more svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.collection-filters.is-open{align-items:flex-start}
.collection-filters.is-open .collection-filters-list{flex-wrap:wrap;overflow:visible;-webkit-mask-image:none;mask-image:none}
.collection-filters.is-open .collection-filters-more svg{transform:rotate(180deg)}
.collection-filters+.cards-grid{margin-top:12px}
.cards-grid[aria-busy="true"]{opacity:.55;transition:opacity .12s}

/* D13/D14 etapa 7: resgate de carta grátis e feedback. */
.flash.success{border-left:6px solid #4fa33b}.free-card-redeem{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:center;margin-top:14px;background:#fff7d9;border-radius:18px;padding:10px 16px}

/* Detalhe da carta (modal da coleção). Composição da referência: a arte inteira
   da carta à esquerda — ela já traz moldura, nome, raridade e selo desenhados,
   nada disso é redesenhado — e à direita os textos que o catálogo tem. As setas
   ladeiam a caixa, o X cavalga o canto superior direito e o "Fechar" fica fora,
   abaixo dela, sobre o escurecido.
   A coluna do app tem 360–430px: as duas colunas dividem a caixa, a carta manda
   na altura e só o texto da direita rola. */
.card-modal{position:fixed;z-index:1200;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:10px 0;background:rgba(30,48,20,.66);backdrop-filter:blur(5px);animation:cardModalFade .2s var(--ease-smooth)}
.card-modal[hidden]{display:none!important}
/* Palco: a caixa no meio e as setas presas às suas bordas. */
.card-modal-stage{position:relative;width:100%;max-width:520px;display:flex;justify-content:center;min-height:0}
.card-modal-box{position:relative;display:flex;flex-direction:column;width:calc(100% - 16px);max-height:82dvh;padding:13px 25px;background:url('../img/backgrounds/bg-card-modal-garden.webp') center bottom/100% auto no-repeat,linear-gradient(158deg,#f4fbe4,#dcf1b2);border:5px solid #fffdf0;container-type:inline-size;border-radius:32px;box-shadow:0 14px 0 rgba(63,88,38,.2),0 26px 50px rgba(34,52,22,.36);animation:cardModalPop .32s var(--ease-spring)}
/* Fundo: a vegetação (bg-card-modal-garden.webp, 1200x480, transparente em cima)
   ancorada embaixo na largura toda da caixa, sem distorcer, sobre o degradê de
   sempre. A carta pisa na grama; a coluna de texto termina acima da vegetação
   e dos brilhos maiores (~73% de baixo da arte: 29% da largura da caixa, em cqw
   da caixa), e um halo na cor do papel protege o texto de algum brilho solto.
   As folhas e brilhos avulsos (decor-card-*) saíram: a arte já traz os seus. */
/* Duas colunas. A arte define a altura da linha; o texto rola dentro dela. */
.card-modal-body{position:relative;z-index:1;flex:1 1 auto;min-height:0;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:9px;align-items:stretch}
.card-modal-art{min-width:0;aspect-ratio:2/3;max-height:64dvh;display:flex;align-items:center;justify-content:center}
.card-modal-art img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;filter:drop-shadow(0 7px 11px rgba(45,64,28,.32))}
/* Coluna de texto: mesma altura da carta, rolando por dentro quando passa. */
.card-modal-info{position:relative;min-width:0;min-height:0;margin-bottom:95px;margin-bottom:calc(29cqw + 2px)}
.card-modal-info-scroll{text-shadow:0 0 3px #eef8da,0 0 6px #eef8da}
.card-modal-info.has-more::after{content:"";position:absolute;z-index:2;left:0;right:0;bottom:0;height:20px;background:linear-gradient(rgba(228,244,193,0),rgba(228,244,193,.95));pointer-events:none;border-radius:0 0 8px 8px}
.card-modal-info-scroll{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(108,142,70,.45) transparent;padding-right:3px;text-align:left}
.card-modal-info h2{font-family:var(--font-display);font-size:clamp(20px,calc(5.2 * var(--app-vw)),28px);line-height:1.02;color:#24702f;margin:0;overflow-wrap:anywhere}
/* Selo de raridade: a arte é o rótulo. Sem arte para o código, o próprio texto
   vira a pílula (fallback), e o nome fica sempre no alt/aria. */
.card-modal-rarity,.card-sale-rarity{margin:7px 0 0;width:max-content;max-width:100%}
.card-modal-rarity img{display:block;width:auto;height:auto;max-width:100%;max-height:27px}
/* A mesma pílula serve o detalhe (quando a raridade não tem selo) e a venda. */
.card-modal-rarity.is-text,.card-sale-rarity{padding:4px 12px;border-radius:999px;background:#fff7dc;color:#6b4d23;font-size:12px;font-weight:800}
.card-modal-meta{margin:7px 0 0;color:#5b7a3b;font-size:12px;line-height:1.3}
.card-modal-story{margin-top:9px}
.card-modal-story img{float:left;width:23px;height:auto;aspect-ratio:145/127;margin:2px 6px 0 0}
.card-modal-story p{margin:0;color:#3f5b2c;font-size:12.5px;line-height:1.42;text-align:left;overflow-wrap:break-word}
/* X cavalgando o canto da caixa, e o Fechar abaixo dela: os dois fecham. */
.card-modal-close{position:absolute;z-index:3;top:-15px;right:-10px;width:46px;height:46px;padding:0;border:0;background:none;cursor:pointer;line-height:0}
.card-modal-close img{width:100%;height:auto;aspect-ratio:142/147;filter:drop-shadow(0 4px 6px rgba(45,64,28,.36))}
.card-modal-dismiss{flex:none;padding:0;border:0;background:none;cursor:pointer;line-height:0;transition:.16s transform}
.card-modal-dismiss img{display:block;width:min(46vw,188px);height:auto;aspect-ratio:249/107;filter:drop-shadow(0 5px 7px rgba(20,36,12,.45))}
.card-modal-dismiss:active{transform:translateY(3px)}
/* Setas ladeando a caixa, à meia altura da carta (topo do palco + metade dela). */
.card-modal-nav{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:38px;height:38px;padding:0;border:0;background:none;cursor:pointer;line-height:0;transition:.16s transform}
.card-modal-nav img{width:100%;height:auto;aspect-ratio:1;filter:drop-shadow(0 4px 7px rgba(20,36,12,.45))}
.card-modal-prev{left:0}
.card-modal-next{right:0}
.card-modal-nav:active{transform:translateY(-50%) scale(.92)}
.card-modal-nav[hidden]{display:none}
/* Carta ainda não conquistada: a modal repete o tratamento da grade e não
   revela nome nem descrição — o que muda é só o tamanho da arte. */
.card-modal.is-secret .card-modal-art img{filter:grayscale(1) brightness(.72) contrast(.95) drop-shadow(0 7px 11px rgba(45,64,28,.32))}
/* Gatilho de abertura: cobre o card inteiro sem mexer no grid nem na arte. */
.collect-card-open{position:absolute;z-index:3;inset:0;width:100%;padding:0;border:0;background:none;cursor:pointer}
.collect-card-open:focus-visible{outline:3px solid #2d7a2a;outline-offset:-3px;border-radius:8px}
.card-modal-close:focus-visible,.card-modal-nav:focus-visible{outline:3px solid #fffdf0;outline-offset:2px;border-radius:50%}
.card-modal-dismiss:focus-visible{outline:3px solid #fffdf0;outline-offset:3px;border-radius:999px}
@keyframes cardModalFade{from{opacity:0}to{opacity:1}}
@keyframes cardModalPop{0%{opacity:0;transform:scale(.88) translateY(14px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@media(prefers-reduced-motion:reduce){.card-modal,.card-modal-box{animation:none}}

/* Coleção: moedas do perfil no card do topo (mesmos ícones da Loja). */
.collection-wallet{position:relative;z-index:1;display:flex;gap:6px;margin-top:12px}
.collection-coin{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:14px;background:rgba(255,253,240,.82);box-shadow:inset 0 0 0 1px rgba(63,88,38,.14),0 1px 0 rgba(63,88,38,.12)}
.collection-coin img{width:22px;height:22px;flex:0 0 auto}
.collection-coin small{display:block;font-size:10px;font-weight:700;color:#5d7a46;line-height:1.1}
.collection-coin b{display:block;font-size:14px;font-weight:900;color:#2f4a22;line-height:1.15;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis}

/* ------------------------------------------------------------------
   Venda de repetidas: ESTADOS da modal de detalhe, não uma segunda modal.
   Os três passos dividem a mesma .card-modal-box, então herdam moldura,
   fundo, X vermelho e animação de abertura sem nada novo.
   ------------------------------------------------------------------ */
[data-card-modal-step][hidden]{display:none!important}

/* Estado 1: só a estrutura da coluna (o detalhe segue como era). */
.card-modal-details{position:relative;z-index:1;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.card-modal-details .card-modal-body{flex:1 1 auto;min-height:0}

/* "Vender cópias": ação externa abaixo da caixa, no lugar onde ficava o antigo
   "Fechar" (fechar agora é só o X vermelho). O visual é o botão da Loja
   (.loja3-buy.is-small); aqui só a largura e o lugar — a mesma medida que o
   "Fechar" tinha. O seletor é duplo porque .loja3-buy mora no v3.css, que carrega
   depois deste arquivo e ganharia no width com specificity igual. */
.card-modal .card-modal-sell{flex:none;width:min(46vw,188px);min-width:150px}
.card-modal .card-modal-sell[hidden]{display:none!important}

/* Estado 2: layout próprio. O detalhe reserva ~29cqw embaixo para a vegetação e
   põe o texto numa coluna absoluta que rola — ótimo para ler, péssimo para um
   formulário (a confirmação ficava fora da vista). Aqui a carta fica sozinha no
   topo e o formulário ocupa a largura toda embaixo dela, com o botão sempre
   visível. A vegetação sai só neste estado, para o formulário ter espaço. */
/* Arte do salão dourado (bg-card-modal-sale.webp, 1024x1536) como fundo da
   caixa nos DOIS estados do fluxo de venda (formulário e sucesso): a carta
   fica sob o arco e o formulário, sobre o piso. cover + center top mantém o
   arco no alto em qualquer altura de caixa e recorta pelas laterais, que são
   só vegetação. O degradê atrás é o que aparece se a imagem não carregar.
   A vegetação (bg-card-modal-garden) fica só no detalhe, de onde ela é.
   Com a arte no fundo, o painel do formulário fica quase tão largo quanto a
   caixa (como na referência): a margem lateral cai dos 25px do detalhe. */
.card-modal.is-selling .card-modal-box,.card-modal.is-sold .card-modal-box{background:url('../img/backgrounds/bg-card-modal-sale.webp') center top/cover no-repeat,linear-gradient(158deg,#faf0d6,#ecdcae);padding-inline:clamp(10px,3.6vw,15px)}
/* Na venda não há nada fora da caixa (setas e "Vender cópias" saem): ela pode
   usar quase a tela toda, e é isso que deixa a carta grande sem rolar.
   Como na modal de compra de envelopes, o painel claro vai de borda a borda e
   até o pé da caixa: sem margem lateral nem inferior, o fundo só aparece em
   cima, em volta da carta. */
.card-modal.is-selling .card-modal-box{max-height:calc(100dvh - 28px);padding-inline:0;padding-bottom:0}
.card-modal-sale{position:relative;z-index:1;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:6px;overflow-y:auto;overscroll-behavior:contain;padding:0;text-align:center}
/* Topo: a carta sozinha, centralizada, solta sobre o arco do fundo. A altura
   é o que sobra da tela depois do formulário (~480px): em celular alto ela
   cresce até o teto, em celular baixo encolhe — o formulário não muda. */
.card-sale-hero{position:relative;z-index:2;display:flex;justify-content:center;padding:4px 10px 0}
.card-sale-thumb img{display:block;height:clamp(104px,min(calc(100dvh - 480px),66cqw),210px);width:auto;max-width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:12px;filter:drop-shadow(0 10px 14px rgba(34,52,22,.32))}
/* Painel claro do formulário: é ele que garante a leitura de título, seletor,
   valores e ações sobre a arte. Como os envelopes na modal de compra, a carta
   avança ~16px sobre o topo dele (o painel sobe 22px, menos os 6px do gap),
   e o painel reserva 26px antes do título (~10px livres). Encostado nas
   laterais e no pé, os cantos de baixo seguem o raio interno da caixa (32px
   da moldura - 5px da borda) e o recuo lateral soma a margem que a caixa
   deixou de ter, para o conteúdo manter a mesma largura. */
.card-sale-form{position:relative;z-index:1;margin-top:-22px;display:flex;flex-direction:column;gap:10px;padding:26px calc(clamp(10px,3.6vw,15px) + clamp(10px,3.4cqw,16px)) clamp(14px,4vw,18px);border-radius:26px 26px 27px 27px;background:rgba(255,250,236,.95);box-shadow:inset 0 0 0 2px rgba(255,255,255,.75),0 6px 16px rgba(92,73,26,.18)}
/* Um painel só: dentro dele o bloco de quantidade da Loja não repete a moldura
   creme — ficam o título, o informativo e os passos direto sobre o painel. */
.card-modal-sale .card-sale-qty{padding:0;background:none}
.card-modal-sale .card-sale-qty .loja3-modal-qty-title{font-size:clamp(20px,6.2cqw,25px)}
/* Os − e + ladeando o número, sem a faixa amarela da Loja por trás. */
.card-modal-sale .loja3-modal-stepper{grid-template-columns:auto minmax(0,128px) auto;justify-content:center;gap:clamp(10px,3.6cqw,16px);margin-top:8px;padding:0;border:0;background:none}
/* Célula do meio do .loja3-modal-stepper: centralizada e com min-width:0, para
   encolher junto com a caixa. Sem isso o input de largura fixa transborda o
   label e cobre o botão "−" — o toque cai no campo em vez do passo. */
.card-sale-quantity{justify-self:center;display:flex;align-items:center;justify-content:center;min-width:0;width:100%}
/* Sem as setinhas nativas: o stepper é o controle. */
.card-sale-quantity input{width:100%;padding:8px 4px;border:2px solid #efe2c6;border-radius:16px;background:#fff;color:#3f2f25;font-family:var(--font-display);font-size:clamp(20px,6cqw,26px);line-height:1.1;text-align:center;font-variant-numeric:tabular-nums;box-shadow:inset 0 2px 0 rgba(92,73,26,.06);-moz-appearance:textfield;appearance:textfield}
.card-sale-quantity input::-webkit-outer-spin-button,.card-sale-quantity input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.card-sale-quantity input:focus-visible{outline:3px solid #2d7a2a;outline-offset:1px}

/* A venda numa linha só, no visual das formas de pagamento da modal de compra
   de envelopes (.loja3-modal-pay/-option/-face): "N cópias" e, abaixo, "Você
   recebe X" na moeda da raridade, com a opção já marcada em verde. */
.card-modal-sale .card-sale-pay{--card-pick:#3fb62f;gap:0;margin:0}
.card-modal-sale .card-sale-pay[hidden]{display:none}
.card-modal-sale .card-sale-pay legend{margin-bottom:8px;font-size:clamp(14px,4.2cqw,16px);color:#6a5a4d}
.card-modal-sale .card-sale-pay .loja3-modal-face{min-height:58px;padding:7px 12px}
.card-modal-sale .card-sale-pay .loja3-modal-text small{color:#7a6a58}
.card-modal-sale .card-sale-pay .loja3-modal-text strong{color:#2f8a24;font-weight:900;font-variant-numeric:tabular-nums}
.card-modal-sale [data-card-sale-coin][hidden]{display:none!important}

.card-sale-keep{margin:0;font-size:12px;font-weight:700;color:#7a6a58;line-height:1.35;text-align:center}
/* Confirmar venda usa o botão da Loja (.loja3-buy.is-small), que já traz
   largura total e o estado desabilitado. Aqui fica o empilhamento e a cola no
   pé da área rolável: se uma tela muito baixa ainda rolar o formulário, a
   confirmação não sai de vista. */
.card-sale-actions{position:sticky;bottom:0;z-index:2;display:flex;flex-direction:column;gap:10px;margin-top:2px;padding-top:4px;}
/* A confirmação é a ação principal da composição: o mesmo botão da Loja, na
   escala que a referência pede (só tamanho, sem skin nova). */
.card-sale-actions .loja3-buy{min-height:52px;font-size:clamp(17px,5.4cqw,22px)}

/* Estado 3: sucesso, na composição de "Envelopes adquiridos!" da Loja. Topo
   (.loja3-modal-done-hero), título contornado e brilhos vêm prontos do v3.css;
   aqui só o que muda: o fundo é o salão da caixa, a "arte" é a moeda recebida
   e o painel claro encosta nas laterais e no pé, como na venda.
   Sem nada fora da caixa (setas e "Vender cópias" saem), ela pode usar quase
   a tela toda. */
.card-modal.is-sold .card-modal-box{max-height:calc(100dvh - 28px);padding:0}
.card-modal-done{position:relative;z-index:1;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;text-align:center}
/* "Repetidas vendidas!" é mais longo que o título da Loja: acompanha a largura
   da caixa para não correr para baixo do X em telas estreitas. Seletor com
   um nível a mais porque o v3.css carrega depois e define o mesmo título. */
.card-modal-done .card-sale-done-hero .loja3-modal-title{max-width:100%;font-size:clamp(21px,6.8cqw,32px)}
/* A moeda no lugar dos envelopes: ancorada na base do topo e por cima do
   painel (z-index), com o "+N moeda" numa pílula que avança ~24px sobre ele,
   como a arte da Loja. */
.card-sale-done-prize{position:relative;z-index:1;flex:1 1 0;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;margin-top:6px;animation:cardSalePop .42s var(--ease-spring) both}
.card-sale-done-prize img{flex:0 1 auto;min-height:0;width:auto;height:clamp(84px,30cqw,124px);object-fit:contain;filter:drop-shadow(0 8px 10px rgba(0,0,0,.25))}
.card-sale-done-prize b{position:relative;margin-top:-14px;padding:5px 20px 4px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 3px #d9f0c4,0 5px 0 rgba(31,106,37,.2);font-family:var(--font-display);font-size:clamp(22px,7cqw,30px);font-weight:400;line-height:1.1;color:#1f7a2a;white-space:nowrap;font-variant-numeric:tabular-nums}
/* Painel claro da Loja (.loja3-modal-body): sobe 24px sob a pílula e reserva
   ~10px livres acima da confirmação. Encostado no pé, os cantos de baixo
   seguem o raio interno da caixa (32px da moldura - 5px da borda). */
.card-modal-done .card-sale-done-body{padding-top:34px;border-radius:26px 26px 27px 27px}
/* "Voltar para a carta": o botão verde da Loja (.loja3-buy.is-small), na
   largura toda e com o respiro das ações da Loja. */
.card-modal-done-back{margin-top:14px}
@keyframes cardSalePop{0%{opacity:0;transform:scale(.7)}100%{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){
  .card-sale-done-prize{animation:none}
}
