/* Lumevila — kit de componentes (mesmo arquivo no site, no jogo e no sistema de design) */
.lv-icon{display:inline-block;vertical-align:-2px;flex:none}
/* botão de ouro: o degrau de pixel */
.lv-btn{display:inline-flex;align-items:center;gap:var(--espaco-2);background:var(--ouro);color:var(--tinta-botao);border:0;border-radius:var(--raio-sm);padding:11px 18px;font:700 14px/1 var(--font-ui);text-decoration:none;cursor:pointer;box-shadow:var(--sombra-botao);transition:transform var(--mov-rapido) var(--mov-curva),box-shadow var(--mov-rapido) var(--mov-curva),filter var(--mov-rapido)}
.lv-btn:hover{filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 5px 0 var(--ouro-sombra)}
.lv-btn:active{transform:translateY(2px);box-shadow:0 2px 0 var(--ouro-sombra)}
.lv-btn--sec{background:transparent;color:var(--texto);border:1px solid var(--borda-controle);box-shadow:none}
.lv-btn--sec:hover{border-color:var(--ouro);color:var(--ouro-texto);box-shadow:none}
.lv-btn--lg{padding:15px 24px;font-size:16px}
.lv-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
:where(.lv-btn,.lv-gbtn,.lv-tab,.lv-campo,.lv-link):focus-visible{outline:2px solid var(--ouro-claro);outline-offset:2px}
/* vidro (só sobre a cena do jogo ou sobre imagem) */
.lv-glass{background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,.09));-webkit-backdrop-filter:blur(var(--desfoque-vidro)) saturate(170%);backdrop-filter:blur(var(--desfoque-vidro)) saturate(170%);border:1px solid var(--vidro-borda);box-shadow:inset 0 1px 0 rgba(255,255,255,.45),inset 0 -1px 0 rgba(0,0,0,.08),var(--sombra-vidro);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.lv-gbtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:var(--raio-pilula);padding:10px 15px;font:700 13px/1 var(--font-ui);cursor:pointer;white-space:nowrap;transition:transform var(--mov-rapido) var(--mov-curva),background var(--mov-medio)}
.lv-gbtn:hover{transform:translateY(-1px);background:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.13))}
.lv-gbtn:active{transform:scale(.95)}
.lv-gbtn.is-on{background:linear-gradient(180deg,rgba(255,214,120,.95),rgba(242,179,61,.88));color:var(--tinta-botao);text-shadow:none;border-color:rgba(255,236,190,.9)}
.lv-gbtn--r{width:42px;height:42px;padding:0}
.lv-chip{display:inline-flex;align-items:center;gap:6px;border-radius:var(--raio-pilula);padding:8px 13px;font:700 12px/1 var(--font-ui);letter-spacing:.04em;text-transform:uppercase}
/* cartões do site */
.lv-card{background:var(--superficie);border:1px solid var(--linha);border-radius:var(--raio-md);padding:var(--espaco-6);color:var(--texto);transition:transform var(--mov-medio) var(--mov-curva),border-color var(--mov-medio)}
a.lv-card,button.lv-card,.lv-card--hover{cursor:pointer}a.lv-card:hover,.lv-card--hover:hover{transform:translateY(-3px);border-color:var(--borda-controle)}
/* papel do Livro */
.lv-livro{background:var(--papel);color:var(--tinta);border:6px solid var(--moldura);border-radius:var(--raio-sm);padding:22px 26px;font:500 17px/1.7 var(--font-livro);box-shadow:var(--sombra-livro)}
.lv-livro h3{font:700 22px/1.2 var(--font-display);color:var(--tinta-vermelha);margin:0 0 10px}
.lv-livro .meta{color:var(--tinta-suave);font-size:14px}
/* plaquinha de ofício */
.lv-plaquinha{position:relative;display:inline-block;font:700 12px/1 var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--tinta-botao);background:linear-gradient(180deg,var(--ouro-claro),var(--ouro));border:2px solid #7a4a14;border-radius:var(--raio-sm);padding:6px 9px 5px;box-shadow:var(--sombra-plaquinha);cursor:pointer}
.lv-plaquinha::after{content:'';position:absolute;left:50%;bottom:-12px;margin-left:-5px;border:5px solid transparent;border-top-color:#7a4a14}
/* selo, etiqueta, balão */
.lv-publi{display:inline-block;font:700 10.5px/1.4 var(--font-ui);letter-spacing:.08em;background:var(--publi);color:#fff;padding:1px 6px;border-radius:3px;vertical-align:middle;text-shadow:none}
.lv-tag{display:inline-flex;align-items:center;gap:5px;font:700 11px/1 var(--font-ui);letter-spacing:.05em;text-transform:uppercase;padding:5px 8px;border-radius:var(--raio-pilula);background:var(--fundo-profundo);color:var(--texto-mudo);border:1px solid var(--linha)}
.lv-tag--ouro{background:var(--ouro);color:var(--tinta-botao);border-color:var(--ouro)}
.lv-bub{position:relative;display:inline-block;max-width:220px;background:rgba(255,252,242,.96);color:var(--tinta);font:500 12.5px/1.35 var(--font-ui);padding:7px 10px;border-radius:12px;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.lv-bub::after{content:'';position:absolute;left:18px;bottom:-6px;border:6px solid transparent;border-top-color:rgba(255,252,242,.96);border-bottom:0}
/* formulário */
.lv-rotulo{display:block;font:600 13px/1.4 var(--font-ui);color:var(--texto-mudo);margin:16px 0 6px}
.lv-campo{width:100%;box-sizing:border-box;background:var(--fundo-profundo);color:var(--texto);border:1px solid var(--borda-controle);border-radius:var(--raio-sm);padding:12px 13px;font:400 15px/1.4 var(--font-ui);transition:border-color var(--mov-rapido)}
.lv-campo:hover{border-color:var(--texto-mudo)}.lv-campo::placeholder{color:var(--texto-mudo);opacity:.8}
textarea.lv-campo{min-height:130px;resize:vertical}
/* abas e escolhas */
.lv-tabs{display:flex;gap:6px;flex-wrap:wrap}
.lv-tab{display:inline-flex;align-items:center;gap:7px;background:var(--superficie);color:var(--texto);border:1px solid var(--linha);border-radius:var(--raio-sm);padding:10px 13px;font:600 14px/1 var(--font-ui);cursor:pointer;transition:border-color var(--mov-rapido),color var(--mov-rapido)}
.lv-tab:hover{border-color:var(--borda-controle)}.lv-tab[aria-selected="true"],.lv-tab.is-on{border-color:var(--ouro);color:var(--ouro-texto);box-shadow:inset 0 0 0 1px var(--ouro)}
/* tabela */
.lv-tabela{width:100%;border-collapse:collapse;font:400 14px/1.45 var(--font-ui);color:var(--texto)}
.lv-tabela th{color:var(--texto-mudo);font-weight:600;text-align:left;border-bottom:1px solid var(--borda-controle);padding:10px 8px}
.lv-tabela td{border-bottom:1px solid var(--linha);padding:11px 8px;font-variant-numeric:tabular-nums}
/* aviso que some sozinho */
.lv-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;border-radius:var(--raio-pilula);padding:11px 18px;font:700 14px var(--font-ui);transition:opacity var(--mov-medio),transform var(--mov-medio) var(--mov-curva);z-index:50}
.lv-toast.is-on{opacity:1;transform:translate(-50%,0)}
/* números */
.lv-num{font:700 40px/1 var(--font-display);color:var(--ouro-texto);font-variant-numeric:tabular-nums}
.lv-link{color:var(--ouro-texto);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
/* entrada suave ao rolar */
.lv-reveal{opacity:0;transform:translateY(14px);transition:opacity .6s var(--mov-curva),transform .6s var(--mov-curva)}.lv-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.lv-reveal{opacity:1;transform:none}}
