/* Startseiten-Hero: Video-Loop ueber dem Standbild + Handkamera-Look + Sound-Button */
#heroVideoWrap{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
.hero-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .6s ease;}
.hero-video.on{opacity:1;}
@media (prefers-reduced-motion: reduce){.hero-video{display:none !important;}}
.snd-btn{position:absolute;right:24px;bottom:28px;z-index:3;width:46px;height:46px;border-radius:50%;border:1px solid rgba(245,166,35,.55);background:rgba(11,10,15,.55);backdrop-filter:blur(6px);color:#f5a623;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background .2s,color .2s,border-color .2s;}
.snd-btn:hover{background:#f5a623;color:#141118;border-color:#f5a623;}
.snd-btn[aria-pressed="true"]{background:rgba(245,166,35,.18);}
.snd-btn .ic-on{display:none;} .snd-btn[aria-pressed="true"] .ic-on{display:block;} .snd-btn[aria-pressed="true"] .ic-off{display:none;}
.snd-btn.busy{opacity:.6;cursor:progress;}
@media (max-width:860px){.snd-btn{right:16px;top:16px;bottom:auto;}}
/* Handkamera-Look: zwei verschachtelte Ebenen mit unterschiedlich langen, nicht-harmonischen Zyklen
   (17,3 s Drift + 11,1 s Schwanken/Neigen) -> wirkt organisch, wiederholt sich nicht sichtbar.
   Ueberzoom (--cam-zoom) verhindert, dass Raender sichtbar werden. --amp skaliert die Staerke. */
.cam-a,.cam-b{position:absolute;inset:0;will-change:transform;}
.cam-on .cam-a{--amp:1;transform:scale(var(--cam-zoom,1.06));animation:camDrift 17.3s ease-in-out infinite;}
.cam-on .cam-b{animation:camSway 11.1s ease-in-out infinite;}
.cam-strong .cam-a{--amp:1.9;--cam-zoom:1.09;}
.cam-strong .cam-b{--amp:1.9;}
@keyframes camDrift{
  0%  {transform:scale(var(--cam-zoom,1.06)) translate(0,0);}
  22% {transform:scale(var(--cam-zoom,1.06)) translate(calc(var(--amp,1)*-0.55%),calc(var(--amp,1)*0.30%));}
  47% {transform:scale(var(--cam-zoom,1.06)) translate(calc(var(--amp,1)*0.35%),calc(var(--amp,1)*0.45%));}
  71% {transform:scale(var(--cam-zoom,1.06)) translate(calc(var(--amp,1)*0.60%),calc(var(--amp,1)*-0.25%));}
  100%{transform:scale(var(--cam-zoom,1.06)) translate(0,0);}
}
@keyframes camSway{
  0%  {transform:rotate(0deg) translate(0,0);}
  18% {transform:rotate(calc(var(--amp,1)*0.22deg)) translate(calc(var(--amp,1)*0.18%),calc(var(--amp,1)*-0.12%));}
  41% {transform:rotate(calc(var(--amp,1)*-0.15deg)) translate(calc(var(--amp,1)*-0.10%),calc(var(--amp,1)*0.15%));}
  63% {transform:rotate(calc(var(--amp,1)*0.10deg)) translate(calc(var(--amp,1)*-0.20%),calc(var(--amp,1)*-0.08%));}
  84% {transform:rotate(calc(var(--amp,1)*-0.24deg)) translate(calc(var(--amp,1)*0.12%),calc(var(--amp,1)*0.10%));}
  100%{transform:rotate(0deg) translate(0,0);}
}
@media (prefers-reduced-motion: reduce){.cam-a,.cam-b{animation:none !important;transform:none !important;}}
