/* DELF CASH · camada ao vivo: partículas, botão de som, revelação e transições */
.dc-vivo{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:60}
.dc-som{position:fixed;right:max(22px,calc(env(safe-area-inset-right,0px) + 14px));top:calc(22px + env(safe-area-inset-top,0px));z-index:61;height:34px;padding:0 12px 0 10px;
  display:flex;align-items:center;gap:8px;border-radius:999px;cursor:pointer;background:rgba(8,8,10,.74);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(243,223,166,.32);color:#f3dfa6;font:500 9.5px/1 "JetBrains Mono",ui-monospace,Menlo,monospace;letter-spacing:.24em;text-transform:uppercase;
  box-shadow:0 10px 30px -12px rgba(0,0,0,.9);transition:color .3s,border-color .3s,opacity .3s}
.dc-som svg{width:16px;height:16px}
.dc-som .w{stroke-dasharray:3 2;animation:dcWave 1.6s linear infinite}
.dc-som .x{display:none}
.dc-som.off{color:#8b8f96;border-color:rgba(214,218,224,.18)}
.dc-som.off .w{animation:none;stroke-dasharray:none;opacity:.5}
.dc-som.off .x{display:block}
@keyframes dcWave{to{stroke-dashoffset:-10}}
.dc-som.hint::after{content:"Experiência com som";position:absolute;right:0;top:calc(100% + 10px);white-space:nowrap;padding:8px 12px;border-radius:8px;
  background:rgba(8,8,10,.9);border:1px solid rgba(243,223,166,.3);color:#e9ebee;font:500 10px/1 "Instrument Sans",system-ui,sans-serif;letter-spacing:.06em;text-transform:none;animation:dcHint 5s ease forwards}
@keyframes dcHint{0%{opacity:0;transform:translateY(-6px)}10%,80%{opacity:1;transform:none}100%{opacity:0}}
.js .vv{opacity:0;transform:translateY(22px)}
.js .vv.vv-in{opacity:1;transform:none;transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
html.dc-leave::after,html.dc-arrive::after{content:"";position:fixed;inset:0;background:#030304;z-index:70;pointer-events:none}
html.dc-leave::after{animation:dcIn .55s ease forwards}
html.dc-arrive::after{animation:dcOut 1.1s .1s ease forwards}
@keyframes dcIn{from{opacity:0}to{opacity:1}}
@keyframes dcOut{from{opacity:1}to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion:reduce){.js .vv{opacity:1;transform:none}.dc-som .w,.dc-som.hint::after{animation:none}html.dc-leave::after,html.dc-arrive::after{animation-duration:.01s}}
