/* Biblioteca e leitura: componentes da experiência v2. */
.library-hero {margin-bottom:22px}
.library-filters{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:12px;margin:22px 0 12px}
.story-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:14px 0 28px}
.story-card{text-align:left;overflow:hidden;border:2px solid var(--line);border-radius:24px;background:var(--card);box-shadow:0 5px 0 var(--line-soft);transition:transform .16s,border-color .16s}
.story-card:hover{transform:translateY(-3px);border-color:var(--deep)}
.story-cover{display:flex;align-items:center;justify-content:center;position:relative;min-height:126px;background:var(--world-mint)}
.story-tone-1 .story-cover{background:var(--world-lavender)}
.story-tone-2 .story-cover{background:var(--world-coral)}
.story-tone-3 .story-cover{background:var(--world-sky)}
.story-cover:before{content:'';position:absolute;width:80px;height:28px;border-radius:50%;background:#ffffff80;bottom:10px}
.story-level{position:absolute;right:10px;top:10px;border-radius:12px;padding:5px 9px;background:#ffffffde;color:#243c42;font-size:.75rem;font-weight:800}
.story-card-copy{padding:16px}
.story-card h3{font-size:1.02rem;line-height:1.3;margin:8px 0}
.story-card p{font-size:.78rem;color:var(--muted);line-height:1.5}
.story-state{display:block;color:var(--deep);font-size:.76rem;font-weight:800;margin-top:12px}
.reader-title{font-size:1.35rem;line-height:1.25}
.reader-companion{display:flex;align-items:center;gap:10px;margin:8px 0 18px}
.reader-companion>div:first-child{flex:0 0 84px}
.reader-companion>div:nth-child(2){flex:1;min-width:0}
.reader-companion p{font-size:.82rem;color:var(--muted);margin:4px 0}
.reader-paper{padding:clamp(18px,5vw,30px);border:2px solid var(--line);background:var(--card);border-radius:26px;box-shadow:0 5px 0 var(--line-soft)}
.reader-english{font-size:1.23rem;line-height:1.9;margin:18px 0 20px;overflow-wrap:anywhere}
.reader-translation{line-height:1.8;padding:15px;border-radius:16px;background:var(--deep-soft);color:var(--ink);margin-bottom:18px}
.reader-nav{display:flex;gap:10px;justify-content:space-between;margin:20px 0}
.reader-nav .btn{min-width:0}
.story-vocab summary{cursor:pointer;font-weight:700;min-height:44px;padding:8px 0}
.vocab-pills{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px}
.vocab-pill{display:flex;flex-direction:column;align-items:flex-start;gap:5px;border:1px solid var(--line);padding:10px 13px;border-radius:14px;background:var(--card-2);color:var(--ink)}
.vocab-pill span{font-size:.78rem;color:var(--muted)}
.reader-question{margin:20px 0}
.reader-question h3{font-size:1.15rem;line-height:1.6}
.story-feedback{display:flex;align-items:center;gap:12px;padding:18px 0}
.story-feedback>div:first-child{flex:0 0 76px}
.story-feedback h3{margin-bottom:7px}
.story-feedback p{font-size:.86rem;line-height:1.6;color:var(--muted)}
.story-complete{padding:24px 0}
.story-complete h2{margin:14px 0}
.story-complete p{margin:12px 0;line-height:1.6}
.story-complete .stack{margin-top:28px}
.voice-cast{display:grid;gap:18px;margin:20px 0}
.voice-card{padding:20px;border:2px solid var(--line);background:var(--card);border-radius:24px;box-shadow:0 4px 0 var(--line-soft)}
.voice-card-top{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.voice-card-top>svg{flex:0 0 86px}
.voice-card-top h2{font-size:1.25rem}
.voice-card select{max-width:100%;text-overflow:ellipsis}
.voice-status{min-height:38px;margin:10px 0;line-height:1.5}
.home-cast{display:flex;gap:9px;overflow:auto;padding:4px 2px 10px}
.home-cast button{flex:0 0 100px;padding:9px 5px;border:2px solid var(--line);border-radius:20px;background:var(--card);color:var(--ink);text-align:center}
.home-cast span{display:block;font-weight:750;font-size:.78rem;margin-top:5px}
.home-cast svg{max-width:100%}
.world-stats{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.world-stats>span{padding:7px 11px;border:1px solid var(--line);border-radius:13px;background:var(--card);font-size:.78rem;font-weight:700}
.migo-touch{border:0;background:none;border-radius:24px;color:inherit;cursor:pointer;flex:0 0 94px}
.migo-touch:active{transform:scale(.94)}
.home-missions{display:grid;gap:10px}
.mission-card{flex-wrap:wrap}
.mission-card .btn{margin-left:auto}
.mission-card progress{width:100%;height:8px;accent-color:var(--deep)}
.mission-copy{flex:1;min-width:130px}
.mission-copy h3{font-size:.92rem}
.mission-copy p{font-size:.75rem;color:var(--muted);margin-top:5px}
.welcome-cast{display:flex;justify-content:center;gap:12px;margin-top:16px}
.welcome-cast>button{background:var(--card);border:2px solid var(--line);border-radius:20px;padding:8px;flex:1;min-width:0}
.welcome-cast>button.selected{border-color:var(--deep);background:var(--deep-soft)}
.welcome-cast svg{max-width:100%}
.welcome-cast span{display:block;font-size:.76rem;font-weight:750}
.mini-goal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mini-goal-grid button{text-align:left}
.intro-migo-line{min-height:48px;line-height:1.5}
.training-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.training-links>button{min-width:0}
.game-section-title{margin:26px 0 12px}
.adventure-feature{width:100%;color:var(--ink);text-align:left}
.adventure-feature h3{font-size:1.17rem;margin:4px 0 6px}
.adventure-feature p{font-size:.84rem;line-height:1.5}
.adventure-feature .chip{margin-top:12px}
.mission-icon{font-size:1.2rem}
.progress-world{margin-bottom:20px}
.progress-world .world-art{max-height:160px}
.world-content-count{font-size:.75rem;color:var(--muted);text-align:center;margin:20px 0 0;line-height:1.7}

@media(max-width:359px){.library-filters{grid-template-columns:1fr}
.story-grid{gap:10px}
.story-card-copy{padding:12px}
.story-card h3{font-size:.9rem}
.reader-companion .chip{font-size:.66rem}
.reader-nav{flex-direction:column}
.reader-english{font-size:1.1rem}
.home-cast button{flex-basis:90px}
}

@media(prefers-reduced-motion:reduce){.story-card{transition:none}
.story-card:hover,.migo-touch:active{transform:none}
}

[data-motion="reduce"] .story-card{transition:none}
[data-motion="reduce"] .story-card:hover,[data-motion="reduce"] .migo-touch:active{transform:none}

/* V4 — biblioteca acolhedora, voz e metas dentro do mesmo mundo. */
.library-filters{gap:14px}
.story-grid{gap:18px}
.story-card{border-radius:29px;box-shadow:0 5px 0 var(--line-soft);min-width:0;color:var(--ink)}
.story-cover{min-height:145px;border-bottom:1px solid var(--line);border-radius:0 0 38% 38% / 0 0 13% 13%}
.story-cover:before{width:112px;height:35px;bottom:12px;background:var(--card);opacity:.7}
.story-level{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 2px 0 var(--line-soft)}
.story-card-copy{padding:18px}
.story-card h3{font-family:var(--f-display);line-height:1.4}
.story-card p{color:var(--ink-2)}

.reader-companion{padding:13px;border:2px solid var(--line);border-radius:29px;background:var(--world-lavender);gap:13px}
.reader-companion p{color:var(--ink-2)}
.reader-paper{border-radius:30px;background:var(--card);box-shadow:0 6px 0 var(--line-soft)}
.reader-translation{border:1px solid var(--line);border-radius:23px;background:var(--world-mint);line-height:1.85}
.reader-nav .btn{flex:1}
.vocab-pill{border-width:2px;border-radius:18px;min-height:54px;background:var(--world-sky);box-shadow:0 3px 0 var(--line-soft)}
.vocab-pill span{color:var(--ink-2)}
.story-feedback{background:var(--world-mint);padding:15px;border-radius:26px;margin-top:20px;border:1px solid var(--line)}

.voice-cast{gap:22px}
.voice-card{border-radius:31px;padding:21px;background:var(--card);box-shadow:0 5px 0 var(--line-soft)}
.voice-card-top{padding:11px 12px;border-radius:24px;background:var(--world-mint);gap:17px;margin-bottom:17px}
.voice-card:nth-child(4n+2) .voice-card-top{background:var(--world-lavender)}
.voice-card:nth-child(4n+3) .voice-card-top{background:var(--world-coral)}
.voice-card:nth-child(4n) .voice-card-top{background:var(--world-sky)}
.voice-card-top h2{font-family:var(--f-display);font-size:1.2rem;line-height:1.35}
.voice-card-top .small{color:var(--ink-2)}
.voice-card select{min-height:50px;border-radius:17px}
.voice-status{font-size:.8rem;line-height:1.65}

.home-cast{gap:13px;padding:5px 3px 12px;scroll-snap-type:x proximity;scrollbar-width:thin}
.home-cast button{flex-basis:112px;padding:11px 7px;border-radius:25px;box-shadow:0 4px 0 var(--line-soft);scroll-snap-align:start;background:var(--world-mint)}
.home-cast button:nth-child(4n+2){background:var(--world-lavender)}
.home-cast button:nth-child(4n+3){background:var(--world-coral)}
.home-cast button:nth-child(4n){background:var(--world-sky)}
.home-cast span{font-family:var(--f-display);color:var(--ink)}

.world-stats{gap:9px;margin-top:16px}
.world-stats>span{border-width:2px;border-radius:16px;padding:9px 12px;background:var(--card);color:var(--ink);font-size:.75rem}
.welcome-cast{gap:13px}
.welcome-cast>button{border-radius:26px;background:var(--world-cream);color:var(--ink);box-shadow:0 4px 0 var(--line-soft);padding:11px 8px}
.welcome-cast>button.selected{background:var(--action);border-color:var(--action-edge)}
.welcome-cast>button:nth-child(2):not(.selected){background:var(--world-lavender)}
.welcome-cast>button:nth-child(3):not(.selected){background:var(--world-coral)}
.welcome-cast span{font-family:var(--f-display);line-height:1.4}
.mini-goal-grid button{border-radius:24px}
.home-missions{gap:14px}
.training-links>button{border-radius:24px}

@media(hover:hover) and (pointer:fine){.story-card:hover{transform:translateY(-3px)}
.home-cast button:hover{border-color:var(--deep)}
}

@media(max-width:380px){.story-grid{gap:12px}
.story-cover{min-height:120px}
.story-card-copy{padding:13px}
.story-card{border-radius:23px}
.reader-companion{padding:11px;gap:9px}
.voice-card{padding:15px;border-radius:26px}
.voice-card-top{padding:8px;gap:11px}
.voice-card-top>svg{flex-basis:73px;width:73px}
.voice-card-top h2{font-size:1.08rem}
.home-cast button{flex-basis:101px}
.welcome-cast{gap:9px}
.welcome-cast>button{padding:8px 5px;border-radius:21px}
.world-stats>span{padding:8px 10px}
}

@media(prefers-reduced-motion:reduce){.story-card:hover,.migo-touch:active{transform:none!important}
.story-card{transition:none!important}
}
[data-motion="reduce"] .story-card:hover,[data-motion="reduce"] .migo-touch:active{transform:none!important}

