/* GERADO por scripts/gerar-logo-app.py a partir de drivedeprojetos/index.html.
   Nao edite a mao: rode o script. */
/* === LOGO ANIMADA (fonte: docs/marca/DriveDeProjetosLogo.jsx) ===
   Entrada e flutuacao sao CSS puro; parallax, scroll e arrastar
   ficam em /drivedeprojetos/js/ddp-logo.js. */
.ddp-root { position:relative; width:100%; aspect-ratio:1/1; perspective:1200px; pointer-events:none; }
.ddp-layer, .ddp-sub, .ddp-drive-in, .ddp-drive-idle { position:absolute; inset:0; }
.ddp-layer { will-change:transform; }
.ddp-root svg { display:block; width:100%; height:100%; overflow:visible; }
.ddp-root svg * { transform-box:fill-box; transform-origin:center; }
.ddp-drive { transform-origin:50% 55%; transform-style:preserve-3d; }
.ddp-drive-in, .ddp-drive-idle { transform-style:preserve-3d; }
.ddp-label { will-change:transform; }
.ddp-hit { fill:transparent; pointer-events:all; cursor:grab; -webkit-tap-highlight-color:transparent; }
.ddp-grabbing, .ddp-grabbing .ddp-hit { cursor:grabbing; }
.ddp-no-drag .ddp-hit { pointer-events:none; cursor:default; }
.ddp-root { -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; }

/* ---------- entrada ---------- */
.ddp-drive-in  { animation: ddp-drive-in .8s cubic-bezier(.2,.8,.2,1) both; }
.ddp-conn-in   { animation: ddp-conn .65s cubic-bezier(.3,1.35,.5,1) .6s both; }
.ddp-paper-in  { animation: ddp-paper .5s ease-out .35s both; }
.ddp-fold-in   { animation: ddp-fold .45s cubic-bezier(.3,1.6,.5,1) .8s both; }
.ddp-roof      { fill:none; stroke-dasharray:1; stroke-dashoffset:1; animation: ddp-draw .5s ease-out .95s forwards; }
.ddp-draw      { fill:none; stroke-dasharray:1; stroke-dashoffset:1; animation: ddp-draw .4s ease-out calc(1.05s + var(--i) * .045s) forwards; }
.ddp-dashwall  { opacity:0; animation: ddp-fade .3s ease-out 1.65s forwards; }
.ddp-window    { animation: ddp-pop .45s cubic-bezier(.3,1.6,.5,1) 1.55s both; }
.ddp-text1     { animation: ddp-reveal .55s cubic-bezier(.2,.9,.2,1) 1.65s both; }
.ddp-text2     { animation: ddp-reveal .55s cubic-bezier(.2,.9,.2,1) 1.8s both; }
.ddp-icon-in   { animation: ddp-fly .75s cubic-bezier(.2,.9,.3,1.15) calc(1.15s + var(--i) * .1s) both; }
.ddp-dash-in   { animation: ddp-grow .45s ease-out calc(1.75s + var(--i) * .04s) both; }
.ddp-dot-in    { animation: ddp-pop .4s cubic-bezier(.3,1.6,.5,1) calc(1.85s + var(--i) * .06s) both; }
.ddp-ring-in   { animation: ddp-flash .6s ease-out 2s both; }

/* ---------- flutuação ---------- */
.ddp-drive-idle { animation: ddp-float 6s ease-in-out .8s infinite; }
.ddp-icon-idle  { animation: ddp-bob 5.5s ease-in-out calc(2s + var(--i) * .7s) infinite; }
.ddp-ring       { animation: ddp-breathe 3s ease-in-out 2.6s infinite; }
.ddp-shine      { transform:translateX(-520px) skewX(-18deg); animation: ddp-shine 7s ease-in-out 2.4s infinite; }
.ddp-no-idle .ddp-idle { animation: none !important; }

@keyframes ddp-drive-in { from { opacity:0; transform:translateY(14%) scale(.9); } 60% { opacity:1; } to { opacity:1; transform:none; } }
@keyframes ddp-conn    { from { transform:translateY(205px); } to { transform:none; } }
@keyframes ddp-paper   { from { opacity:0; transform:scale(.92); } to { opacity:1; transform:none; } }
@keyframes ddp-fold    { from { opacity:0; transform:scale(0); } to { opacity:1; transform:none; } }
@keyframes ddp-draw    { to { stroke-dashoffset:0; } }
@keyframes ddp-fade    { from { opacity:0; } to { opacity:1; } }
@keyframes ddp-pop     { from { opacity:0; transform:scale(0); } to { opacity:1; transform:none; } }
@keyframes ddp-reveal  { from { transform:translateY(100px); } to { transform:none; } }
@keyframes ddp-fly     { from { opacity:0; transform:translate(var(--dx),var(--dy)) scale(.3) rotate(-12deg); } 40% { opacity:1; } to { opacity:1; transform:none; } }
@keyframes ddp-grow    { from { opacity:0; transform:scaleX(0); } to { opacity:1; transform:none; } }
@keyframes ddp-flash   { 0% { opacity:.3; } 40% { opacity:1; filter:brightness(1.8); } 100% { opacity:1; filter:none; } }
@keyframes ddp-float   { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1.3%); } }
@keyframes ddp-bob     { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-10px) rotate(-2deg); } }
@keyframes ddp-breathe { 0%,100% { opacity:1; } 50% { opacity:.6; } }
@keyframes ddp-shine   { 0% { transform:translateX(-520px) skewX(-18deg); } 30%,100% { transform:translateX(520px) skewX(-18deg); } }
@media (prefers-reduced-motion: reduce){
  .ddp-root *{ animation-delay:-10s !important; animation-iteration-count:1 !important; }
  .ddp-root .ddp-idle{ animation:none !important; }
}
.ddp-root .ddp-hit{ pointer-events:none; cursor:default; }
