/*
 * AddWeb: animowane logo „Developed by” w stopce (komponent wspólny dla stron Łukasza, wersja 09.11.2026).
 * Wzór: stopka swinoujscie.net. Jeden plik, bez JS i bez osobnych grafik (logo jako maska w data URI).
 *
 * HTML:
 *   <a class="addweb" href="https://addweb.pl/" target="_blank" rel="noopener" aria-label="Developed by AddWeb">
 *     <span class="addweb__by">Developed by</span>
 *     <span class="addweb__logo" aria-hidden="true"><span class="addweb__add"></span><span class="addweb__web"></span><span class="addweb__spark"></span><span class="addweb__shine"></span></span>
 *   </a>
 *
 * Kolory (nadpisz na .addweb w motywie, jeśli trzeba):
 *   --addweb-ink    tekst „Developed by”        --addweb-logo  kolor logo
 *   --addweb-hover  podświetlenie po najechaniu --addweb-glow  poświata „web” i gwiazdki (R,G,B)
 * Ruch: po najechaniu (lub fokusie z klawiatury) „web” obraca się i świeci, gwiazdka robi obrót, po logo przechodzi błysk.
 * Przy „ogranicz animacje” (prefers-reduced-motion) ruch jest wyłączony, zostaje samo podświetlenie kolorem.
 */
.addweb{--addweb-ink:rgba(255,255,255,.62);--addweb-logo:rgba(255,255,255,.9);--addweb-hover:#f2b418;--addweb-glow:242,180,24;--addweb-ease:cubic-bezier(.22,1,.36,1);display:inline-flex;align-items:center;gap:12px;vertical-align:middle;line-height:1;text-decoration:none!important;border-radius:6px;-webkit-tap-highlight-color:transparent}
.addweb:focus{outline:none}
.addweb:focus-visible{outline:2px solid var(--addweb-hover);outline-offset:6px}
.addweb__by{color:var(--addweb-ink);font-size:.8rem;letter-spacing:.01em;white-space:nowrap;transition:color .4s,letter-spacing .5s var(--addweb-ease)}
.addweb__logo{--addweb-img:url("data:image/webp;base64,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");position:relative;display:block;flex:none;width:116px;height:24px;perspective:260px}
.addweb__logo>span{position:absolute;inset:0;display:block;transition:filter .4s}
.addweb__logo>span::before{content:"";position:absolute;inset:0;background:var(--addweb-logo);-webkit-mask:var(--addweb-img) center/100% 100% no-repeat;mask:var(--addweb-img) center/100% 100% no-repeat;transition:background-color .4s}
.addweb__add::before{clip-path:inset(0 59% 0 0)}
.addweb__web{transform-origin:66% 55%}
.addweb__web::before{clip-path:inset(0 9.4% 0 41%)}
.addweb__spark{transform-origin:95.7% 32%;transition:transform .9s var(--addweb-ease),filter .4s}
.addweb__spark::before{clip-path:inset(0 0 0 91.5%)}
.addweb__shine::before{background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.95) 50%,transparent 65%) no-repeat;background-size:260% 100%;background-position:160% 0}
.addweb:hover .addweb__by,.addweb:focus-visible .addweb__by{color:var(--addweb-hover);letter-spacing:.03em}
.addweb:hover .addweb__web,.addweb:focus-visible .addweb__web{animation:addwebFlip .9s var(--addweb-ease),addwebGlow 1.4s ease-in-out .9s infinite alternate;filter:drop-shadow(0 0 6px rgba(var(--addweb-glow),.85))}
.addweb:hover .addweb__web::before,.addweb:focus-visible .addweb__web::before,.addweb:hover .addweb__spark::before,.addweb:focus-visible .addweb__spark::before{background:var(--addweb-hover)}
.addweb:hover .addweb__spark,.addweb:focus-visible .addweb__spark{transform:rotate(360deg) scale(1.45);filter:drop-shadow(0 0 5px rgba(var(--addweb-glow),.9))}
.addweb:hover .addweb__shine::before,.addweb:focus-visible .addweb__shine::before{animation:addwebShine 1.1s var(--addweb-ease) .15s}
@keyframes addwebFlip{0%{transform:rotateX(0)}70%{transform:rotateX(360deg) scale(1.12)}100%{transform:rotateX(360deg) scale(1)}}
@keyframes addwebGlow{from{filter:drop-shadow(0 0 3px rgba(var(--addweb-glow),.6))}to{filter:drop-shadow(0 0 10px rgba(var(--addweb-glow),1))}}
@keyframes addwebShine{from{background-position:160% 0}to{background-position:-60% 0}}
@media (prefers-reduced-motion:reduce){
  .addweb__by,.addweb__logo>span,.addweb__logo>span::before,.addweb__spark{transition:none}
  .addweb:hover .addweb__by,.addweb:focus-visible .addweb__by{letter-spacing:.01em}
  .addweb:hover .addweb__web,.addweb:focus-visible .addweb__web,.addweb:hover .addweb__shine::before,.addweb:focus-visible .addweb__shine::before{animation:none}
  .addweb:hover .addweb__spark,.addweb:focus-visible .addweb__spark{transform:none}
}
