SSELTZERR

artist, animator, and youtuber

(function() { const buttons = document.querySelectorAll('.cat-button'); const followRadius = 300; function updatePaw(clientX, clientY) { buttons.forEach(function(button) { const rect = button.getBoundingClientRect(); const catCenterX = rect.left + rect.width / 2; const catCenterY = rect.top + rect.height / 2; const distanceX = clientX - catCenterX; const distanceY = clientY - catCenterY; const distance = Math.sqrt(distanceX * distanceX + distanceY * distanceY); if (distance <= followRadius) { button.classList.add('paw-following'); const strength = 1 - distance / followRadius; const pawX = Math.max(-18, Math.min(18, distanceX * 0.08 * strength)); const pawY = Math.max(-12, Math.min(12, distanceY * 0.07 * strength)); const pawRotate = Math.max(-35, Math.min(18, -12 - distanceX * 0.08 * strength)); button.style.setProperty('--paw-x', pawX + 'px'); button.style.setProperty('--paw-y', pawY + 'px'); button.style.setProperty('--paw-rotate', pawRotate + 'deg'); } else { resetOnePaw(button); } }); } function resetOnePaw(button) { button.classList.remove('paw-following'); button.style.setProperty('--paw-x', '0px'); button.style.setProperty('--paw-y', '0px'); button.style.setProperty('--paw-rotate', '-12deg'); } function resetAllPaws() { buttons.forEach(function(button) { resetOnePaw(button); }); } buttons.forEach(function(button) { button.addEventListener('click', function(e) { e.stopPropagation(); buttons.forEach(function(otherButton) { if (otherButton !== button) { otherButton.classList.remove('active'); } }); button.classList.toggle('active'); }); }); document.addEventListener('click', function() { buttons.forEach(function(button) { button.classList.remove('active'); }); }); /* desktop cursor follow */ document.addEventListener('mousemove', function(e) { updatePaw(e.clientX, e.clientY); }); /* mobile finger drag follow */ document.addEventListener('touchstart', function(e) { if (!e.touches || !e.touches.length) return; const touch = e.touches[0]; updatePaw(touch.clientX, touch.clientY); }, { passive: true }); document.addEventListener('touchmove', function(e) { if (!e.touches || !e.touches.length) return; const touch = e.touches[0]; updatePaw(touch.clientX, touch.clientY); }, { passive: true }); document.addEventListener('touchend', function() { resetAllPaws(); }); document.addEventListener('touchcancel', function() { resetAllPaws(); }); })();
(function () { const widget = document.getElementById("selUpdatesWidget"); const openBtn = document.getElementById("selCoffeeOpen"); const panel = document.getElementById("selUpdatesPanel"); const closeBtn = document.getElementById("selPanelClose"); const overlay = document.getElementById("selPanelOverlay"); function getMainBox() { return ( widget.closest(".container") || widget.closest(".wrapper") || widget.closest(".inner") || widget.parentElement ); } function placeCoffee() { const box = getMainBox(); if (!box) return; const rect = box.getBoundingClientRect(); const isMobile = window.innerWidth <= 600; const drop = isMobile ? parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--sel-coffee-drop-mobile")) : parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--sel-coffee-drop-desktop")); const peek = isMobile ? parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--sel-coffee-peek-mobile")) : parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--sel-coffee-peek-desktop")); const coffeeWidth = openBtn.offsetWidth || 48; openBtn.style.left = rect.right - coffeeWidth + peek + "px"; openBtn.style.top = rect.top + drop + "px"; openBtn.style.right = "auto"; } function openPanel() { panel.classList.add("is-open"); overlay.classList.add("is-open"); openBtn.classList.add("is-active"); panel.setAttribute("aria-hidden", "false"); openBtn.blur(); } function closePanel() { panel.classList.remove("is-open"); overlay.classList.remove("is-open"); openBtn.classList.remove("is-active"); panel.setAttribute("aria-hidden", "true"); openBtn.blur(); } function togglePanel() { if (panel.classList.contains("is-open")) { closePanel(); } else { openPanel(); } } openBtn.addEventListener("click", togglePanel); closeBtn.addEventListener("click", closePanel); overlay.addEventListener("click", closePanel); document.addEventListener("keydown", function (e) { if (e.key === "Escape") closePanel(); }); window.addEventListener("load", placeCoffee); window.addEventListener("resize", placeCoffee); window.addEventListener("scroll", placeCoffee, { passive: true }); placeCoffee(); })();

Watch my newest YouTube video by clicking below!

Commissions

Contact me at any of the links above, or request directly through VGen! you can also pay with Venmo, PayPal, or Bit

אם יש לך את אפליקציית Bit, זה הרבה יותר טוב, אז שלח לי הודעה פרטית ישירות כדי לבקש עמלה. תשלום באמצעות Bit יוריד את מחיר העמלה הכולל

Store

currently at animatsuri!

Portfolio

Explore one of my themed portfolios!

or some of my recent works :D

About me

My name is Selica! I'm 21 and currently working in two tech jobs but I'm hoping to get to university soon :) Aiming for a Character Animation degree!!I do YouTube and art in my free time if you couldn't already guess that, and I'm very passionate about fandom. Speaking of fandom...

  • Hetalia

  • Marvel (MCU and Rivals, mainly)

  • Percy Jackosn + Extended Universe

  • Classroom of the Elite

  • Pokemon

  • Manchester United FC

  • Invincible

  • My Hero Academia

  • Noragami

  • Blue Exorcist

  • Blue Lock

  • Dr. STONE

  • Fire Force

  • Mob Psycho 100

  • Fight Club

  • My Little Pony

  • How to Train Your Dragon

  • South Park

  • Britpop/British Music

  • To Your Eternity

anyways yeah tysm for reading this i love conversation so feel free to DM me wherever!

Portfolio

Illustration

Portfolio

Design & Character

Portfolio

Animation

the compilation of this section is still in significant progress, animatics can be found on my youtube channel, linked in the footer & home page!

Portfolio

Traditional Studies

NSFW because of nude studies. Nothing graphic, but take warning

WIP sorry LOL