/* The VibeCritic 0.2 — descoberta editorial, componentes comuns e três luzes. */
html[data-momento] { --v02-radius: 18px; --v02-max: 1240px; --v02-ease: cubic-bezier(.2,.65,.3,1); }
html[data-momento="dia"] { --bg:#f6f5ef; --bg-2:#edeee7; --surface:#fffefb; --surface-2:#f0f1eb; --fg:#192220; --muted:#56615b; --line:#dce0d6; --line-strong:#b5beb2; --accent:#263ddd; --on-accent:#fff; --accent-2:#ad482c; --accent-3:#426847; --ring:#263ddd; --accent-soft:#e6eafd; --shadow:0 8px 28px -16px #1a271f35; --shadow-lg:0 24px 64px -28px #1a271f50; }
html[data-momento="tarde"] { --bg:#20131d; --bg-2:#291b25; --surface:#30212b; --surface-2:#392933; --fg:#fff3e9; --muted:#d5b7bb; --line:#58404d; --line-strong:#876977; --accent:#ffcf9c; --on-accent:#25131b; --ring:#ffcf9c; --accent-soft:#54333c; --shadow:0 12px 28px -12px #0005; --shadow-lg:0 28px 80px -24px #0008; }
html[data-momento="noite"] { --bg:#0d1319; --bg-2:#131c23; --surface:#19232b; --surface-2:#222d36; --fg:#f1f4ef; --muted:#b6c1bd; --line:#34423f; --line-strong:#52635d; --accent:#d9f785; --on-accent:#152216; --ring:#d9f785; --accent-soft:#2d3d26; --shadow:0 12px 28px -12px #0005; --shadow-lg:0 28px 80px -24px #0008; }
body.v02 { margin:0; background:var(--bg); color:var(--fg); font-family:var(--body,"Geist",system-ui,sans-serif); font-size:16px; line-height:1.55; -webkit-font-smoothing:antialiased; }
.v02 *, .v02 *::before, .v02 *::after { box-sizing:border-box; }
.v02 .wrap { max-width:var(--v02-max); width:100%; padding-inline:32px; margin-inline:auto; }
.v02 h1,.v02 h2,.v02 h3 { text-transform:none; letter-spacing:-.035em; text-wrap:balance; }
.v02 h1 { font-size:clamp(36px,4.8vw,68px); line-height:1.04; }
.v02 h2 { font-size:clamp(28px,3vw,42px); line-height:1.12; }
.v02 h3 { font-size:21px; line-height:1.2; }
.v02 a { color:inherit; }
.v02 a:focus-visible,.v02 button:focus-visible,.v02 input:focus-visible,.v02 select:focus-visible { outline:3px solid var(--ring); outline-offset:4px; }
.v02 button,.v02 input,.v02 select { font:inherit; }
.v02 button,.v02 .btn { min-height:44px; }
.v02 .nav { position:sticky; top:0; z-index:50; border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--bg) 94%,transparent); backdrop-filter:blur(16px); padding-top:env(safe-area-inset-top,0px); }
.v02 .nav-in { display:flex; align-items:center; gap:24px; min-height:80px; padding-block:14px; }
.v02 .logo { font-size:25px; font-weight:800; letter-spacing:-.05em; white-space:nowrap; text-decoration:none; }
.v02 .logo small { font-size:15px; font-weight:400; margin-right:4px; }
.v02 .logo i { font-family:var(--serif,"Instrument Serif",serif); font-weight:400; color:var(--accent); }
.v02 .links { display:flex; align-items:center; gap:24px; }
.v02 .links a { text-decoration:none; color:var(--muted); font-size:14px; font-weight:550; }
.v02 .links a:hover { color:var(--fg); }
.v02 .nav [data-tema-toggle] { margin-left:auto; }
.v02 .nav [data-conta] { display:none; }
.tema-compact { display:none; }
.v02 .langsel { margin-left:0; }
.v02 .langsel select { max-width:130px; border:1px solid var(--line); border-radius:100px; background:var(--surface); color:var(--fg); min-height:40px; padding:8px 12px; }
.v02 .btn { display:inline-flex; justify-content:center; align-items:center; gap:8px; text-decoration:none; border:1px solid var(--line-strong); background:var(--surface); color:var(--fg); border-radius:100px; padding:12px 20px; font-size:14px; font-weight:600; line-height:1.2; transition:transform .22s var(--v02-ease),background .22s; }
.v02 .btn:hover { transform:translateY(-2px); background:var(--surface-2); }
.v02 .btn.primary { background:var(--accent); color:var(--on-accent); border-color:var(--accent); }
.v02 .btn.primary:hover { background:color-mix(in srgb,var(--accent) 90%,var(--fg)); }
.v02 .btn.sm { min-height:40px; padding:10px 16px; }
.v02 .ev { min-width:0; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:var(--v02-radius); overflow:hidden; text-decoration:none; box-shadow:var(--shadow); transition:transform .3s var(--v02-ease),box-shadow .3s; }
.v02 .ev:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.v02 .ev .ph { position:relative; width:100%; aspect-ratio:16/10; height:auto; min-height:0; overflow:hidden; background:var(--bg-2); }
.v02 .ev .ph img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s var(--v02-ease); }
.v02 .ev:hover .ph img { transform:scale(1.025); }
.v02 .ev .ph[data-midia="flyer"] img,.v02 .ev .ph img[data-midia="flyer"] { object-fit:contain; }
.v02 .ev .body { flex:1; padding:20px; min-width:0; }
.v02 .ev .top { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 12px; }
.v02 .ev .when,.v02 .ev .hr { font-size:12px; font-weight:650; letter-spacing:.03em; }
.v02 .ev h3 { margin:0 0 10px; font-size:21px; }
.v02 .ev h3 a { text-decoration:none; }
.v02 .ev .meta,.v02 .ev .lineup,.v02 .ev .src { font-size:13px; color:var(--muted); margin-block:8px; line-height:1.5; }
.v02 .ev .acts { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.v02 .cat-tag { border-radius:100px; font-size:11px; padding:4px 9px; font-weight:600; background:var(--surface-2); color:var(--fg); border:1px solid var(--line); }
.v02 .unv { font-size:11px; color:var(--muted); }
.v02 .empty { padding:24px; color:var(--muted); border:1px dashed var(--line-strong); border-radius:var(--v02-radius); background:var(--surface); }
.v02 footer.foot { margin-top:80px; border-top:1px solid var(--line); padding-block:44px calc(32px + env(safe-area-inset-bottom,0px)); font-size:13px; color:var(--muted); }
.v02 .foot a { text-decoration:none; }
.v02 .foot a:hover { color:var(--fg); }
.v02 .foot .foot-in { display:flex; justify-content:space-between; gap:32px; flex-wrap:wrap; }
.v02 .section-head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.v02 .section-head p { color:var(--muted); margin:12px 0 0; max-width:600px; }
.v02 .eyebrow { font-size:11px; font-weight:650; letter-spacing:.14em; text-transform:uppercase; display:flex; align-items:center; gap:9px; color:var(--muted); }
.v02 .eyebrow::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--accent); }
.v02 .media-credit { font-size:11px; color:var(--muted); margin-top:8px; }
.v02 .media-credit a { text-underline-offset:3px; }
.v02 .reveal { animation:v02-enter .7s var(--v02-ease) both; }
@keyframes v02-enter { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:900px) { .v02 .wrap { padding-inline:24px; } .v02 .nav-in { gap:16px; } .v02 .links { gap:16px; } }
@media(max-width:640px) { .v02 .wrap { padding-inline:18px; } .v02 .nav-in { min-height:70px; gap:10px; flex-wrap:wrap; } .v02 .logo { font-size:21px; } .v02 .links { gap:12px; } .v02 .links a { font-size:12px; } .v02 .nav .links { order:5; flex-basis:100%; justify-content:center; padding:5px 0 1px; } .v02 .langsel select { max-width:100px; font-size:12px; } .v02 .ev .body { padding:18px; } .v02 .section-head { align-items:start; flex-direction:column; gap:16px; } .v02 footer.foot { margin-top:56px; } }
@media(prefers-reduced-motion:reduce) { .v02 *, .v02 *::before,.v02 *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
@media(max-width:640px) { .v02 .nav .tema-toggle { padding:0; border:0; background:none; flex-shrink:0; } .v02 .nav .tema-toggle > button { display:none; } .v02 .nav .tema-compact { display:block; } .v02 .nav .tema-compact select { width:72px; min-height:44px; padding:6px; border:1px solid var(--line); background:var(--surface); color:var(--fg); border-radius:100px; font-size:11px; } .v02 .nav .langsel select { width:96px; min-height:44px; } .v02 .nav-in { gap:8px; } }
@media(min-width:641px) and (max-width:1000px) { .v02 .nav-in { flex-wrap:wrap; } .v02 .nav .links { order:5; flex-basis:100%; justify-content:center; } }
@media(max-width:640px) { .v02 .nav [data-busca] { order:5; } .v02 .nav [data-busca] .tvc-bnav { min-height:44px; } .v02 .nav:has([data-busca]) .langsel select { width:80px; } }
@media(max-width:640px) { .v02 .nav-in { position:relative; } .v02 .nav [data-busca] { position:absolute; right:18px; bottom:7px; } .v02 .nav:has([data-busca]) .links { justify-content:flex-start; padding-right:44px; } }
