.tns-outer{padding:0!important}.tns-outer [hidden]{display:none!important}.tns-outer [aria-controls],.tns-outer [data-action]{cursor:pointer}.tns-slider{transition:all}.tns-slider>.tns-item{box-sizing:border-box}.tns-horizontal.tns-subpixel{white-space:nowrap}.tns-horizontal.tns-subpixel>.tns-item{vertical-align:top;white-space:normal;display:inline-block}.tns-horizontal.tns-no-subpixel:after{content:"";clear:both;display:table}.tns-horizontal.tns-no-subpixel>.tns-item{float:left}.tns-horizontal.tns-carousel.tns-no-subpixel>.tns-item{margin-right:-100%}.tns-no-calc{position:relative;left:0}.tns-gallery{min-height:1px;position:relative;left:0}.tns-gallery>.tns-item{transition:transform,opacity;position:absolute;left:-100%}.tns-gallery>.tns-slide-active{position:relative;left:auto!important}.tns-gallery>.tns-moving{transition:all .25s}.tns-autowidth{display:inline-block}.tns-lazy-img{opacity:.6;transition:opacity .6s}.tns-lazy-img.tns-complete{opacity:1}.tns-ah{transition:height}.tns-ovh{overflow:hidden}.tns-visually-hidden{position:absolute;left:-10000em}.tns-transparent{opacity:0;visibility:hidden}.tns-fadeIn{opacity:1;filter:alpha(opacity=100);z-index:0}.tns-normal,.tns-fadeOut{opacity:0;filter:alpha(opacity=0);z-index:-1}.tns-vpfix{white-space:nowrap}.tns-vpfix>div,.tns-vpfix>li{display:inline-block}.tns-t-subp2{width:310px;height:10px;margin:0 auto;position:relative;overflow:hidden}.tns-t-ct{width:2333.33%;width:-webkit-calc(100% * 70 / 3);width:-moz-calc(100% * 70 / 3);width:2333.33%;position:absolute;right:0}.tns-t-ct:after{content:"";clear:both;display:table}.tns-t-ct>div{width:1.42857%;width:-webkit-calc(100% / 70);width:-moz-calc(100% / 70);float:left;width:1.42857%;height:10px}
.dark-mode .overview-section .item-icon svg{width:40px;height:40px}.dark-mode .overview-section .item-icon svg.fa-wordpress,.dark-mode .overview-section .item-icon svg.fa-square-git,.dark-mode .overview-section .item-icon svg.fa-square-github,.dark-mode .overview-section .item-icon svg.fa-bootstrap{color:#fff}.dark-mode .overview-section .item-icon svg.fa-js{color:#f3e5ab}.dark-mode .overview-section .item-icon svg.fa-tailwindcss{color:#38bdf9}.profile-teaser .bio img.brand-logo{height:14px}.profile-teaser .profile-image{max-width:100%;max-height:100%}@media (min-width:768px){.profile-teaser .profile-image{object-fit:cover;mix-blend-mode:luminosity;width:800px;height:400px}.profile-teaser .profile-image:hover{mix-blend-mode:normal}}.overview-section .item-icon svg .fa-wordpress{color:#21759b}.overview-section .skills-grid{flex-direction:column;display:flex}.overview-section .skill-group{border-bottom:1px solid #0000000f;flex-direction:column;gap:10px;padding:18px 0;display:flex}.overview-section .skill-group:first-child{padding-top:6px}.overview-section .skill-group:last-child{border-bottom:0;padding-bottom:0}.overview-section .skill-group-title{border-left:2px solid var(--bs-primary,#54b689);letter-spacing:.06em;text-transform:uppercase;margin:0;padding:0 0 0 10px;font-size:.75rem;line-height:1.2}.overview-section .my-skills{flex-wrap:wrap;justify-content:flex-start;gap:6px;display:flex}.overview-section .my-skills .skill-item{color:#3f3f3f;letter-spacing:.01em;white-space:nowrap;background:#f5f7f6;border:1px solid #e4e7e5;border-radius:999px;align-items:center;gap:5px;height:22px;padding:0 8px 0 6px;font-size:11px;font-weight:600;line-height:1;transition:border-color .2s,background-color .2s,transform .2s;display:inline-flex}.overview-section .my-skills .skill-item svg{width:11px;height:11px;fill:var(--skill-color,currentColor);flex-shrink:0}.overview-section .my-skills .skill-item:hover{background:#54b68914;border-color:#54b68959;transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){.overview-section .skill-item{transition:none}.overview-section .skill-item:hover{transform:none}}.dark-mode .overview-section .skill-group{border-bottom-color:#ffffff14}.dark-mode .overview-section .skill-item{color:#ffffffdb;background:#ffffff0d;border-color:#ffffff14}.dark-mode .overview-section .skill-item:hover{background:#54b6891f;border-color:#54b68966}.dark-mode .overview-section .skill-item.is-dark-icon svg{fill:#f2f4f6}.overview-section .item-icon svg.fa-github{color:#000}.featured-section .project-card{height:100%}.featured-section .project-card .card-body>.card-text:not(.card-footer){-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.featured-section .card-footer{background-color:#0000;border-top:1px solid #dcdcde;padding:12px 0 0}.project-badge{z-index:3;background:#54b689e6;font-size:.7em;top:12px;right:12px}
.featured-section .project-card--animated .card-img-holder{isolation:isolate;position:relative;overflow:hidden}.project-anim-stage{z-index:2;pointer-events:none;position:absolute;inset:0;overflow:hidden}.anim-sparkle-icon{filter:drop-shadow(0 0 8px #4aa3ff73)drop-shadow(0 0 14px #8b5cf647);width:36px;height:36px;display:block;overflow:visible}.anim-sparkle-icon__blue{fill:#4aa3ff}.anim-sparkle-icon__purple{fill:#8b5cf6}.anim-sparkle-icon--mid{opacity:.72;filter:drop-shadow(0 0 8px #8b5cf673);width:20px;height:20px}.anim-sparkle-icon--tiny{opacity:.55;filter:drop-shadow(0 0 6px #4aa3ff80);width:12px;height:12px}.dark-mode .anim-sparkle-icon{filter:drop-shadow(0 0 12px #4aa3ffb3)drop-shadow(0 0 22px #8b5cf673)}
.sparkle-wander{will-change:left,top;position:absolute;top:0;left:0}.sparkle-wander--main{animation:22s ease-in-out infinite sparkle-drift-main}.sparkle-wander--mid{animation:16s ease-in-out infinite sparkle-drift-mid}.sparkle-wander--tiny{animation:13s ease-in-out infinite sparkle-drift-tiny}.sparkle-breath{animation:4.8s ease-in-out infinite sparkle-breathe;position:relative}.sparkle-glow{filter:blur(5px);background:radial-gradient(circle,#4aa3ff47 0%,#8b5cf624 42%,#0000 72%);border-radius:50%;animation:3.6s ease-in-out infinite sparkle-glow-pulse;position:absolute;inset:-14px}.sparkle-mote{background:#4aa3ff;border-radius:50%;width:5px;height:5px;position:absolute;box-shadow:0 0 8px 2px #4aa3ffb3}.sparkle-mote--a{animation:11s ease-in-out infinite sparkle-mote-a}.sparkle-mote--b{background:#8b5cf6;animation:14s ease-in-out 1.2s infinite sparkle-mote-b;box-shadow:0 0 8px 2px #8b5cf6b3}.sparkle-mote--c{width:3px;height:3px;animation:9s ease-in-out .6s infinite sparkle-mote-c}.sparkle-mote--d{background:#c4b5fd;width:4px;height:4px;animation:17s ease-in-out 2s infinite sparkle-mote-d;box-shadow:0 0 7px 2px #c4b5fda6}@keyframes sparkle-drift-main{0%{top:10%;left:6%}18%{top:6%;left:64%}36%{top:42%;left:72%}54%{top:68%;left:38%}72%{top:52%;left:8%}86%{top:22%;left:28%}to{top:10%;left:6%}}@keyframes sparkle-drift-mid{0%{top:58%;left:70%}25%{top:64%;left:14%}50%{top:12%;left:22%}75%{top:28%;left:68%}to{top:58%;left:70%}}@keyframes sparkle-drift-tiny{0%{top:72%;left:42%}33%{top:18%;left:78%}66%{top:30%;left:12%}to{top:72%;left:42%}}@keyframes sparkle-breathe{0%,to{transform:rotate(-8deg)scale(.92)}50%{transform:rotate(10deg)scale(1.12)}}@keyframes sparkle-glow-pulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:.8;transform:scale(1.15)}}@keyframes sparkle-mote-a{0%{opacity:.15;top:22%;left:18%;transform:scale(.6)}30%{opacity:.95;top:14%;left:58%;transform:scale(1.15)}60%{opacity:.35;top:48%;left:76%;transform:scale(.7)}to{opacity:.15;top:22%;left:18%;transform:scale(.6)}}@keyframes sparkle-mote-b{0%{opacity:.2;top:68%;left:76%}40%{opacity:.9;top:74%;left:28%}70%{opacity:.4;top:36%;left:10%}to{opacity:.2;top:68%;left:76%}}@keyframes sparkle-mote-c{0%{opacity:.1;top:8%;left:50%}45%{opacity:.85;top:36%;left:86%}to{opacity:.1;top:8%;left:50%}}@keyframes sparkle-mote-d{0%{opacity:.15;top:62%;left:12%}50%{opacity:.8;top:18%;left:54%}to{opacity:.15;top:62%;left:12%}}.dark-mode .sparkle-glow{background:radial-gradient(circle,#4aa3ff8c 0%,#8b5cf64d 42%,#0000 72%)}@media (prefers-reduced-motion:reduce){.sparkle-wander,.sparkle-breath,.sparkle-glow,.sparkle-mote{animation:none}.sparkle-wander--main{top:12px;left:auto;right:14px}.sparkle-wander--mid,.sparkle-wander--tiny,.sparkle-mote{display:none}}
.aladdin-wander{animation:20s ease-in-out infinite aladdin-drift;position:absolute;top:0;left:0}.aladdin-bob{width:72px;height:44px;animation:5.2s ease-in-out infinite aladdin-bob;position:relative}.aladdin-lamp-icon{filter:drop-shadow(0 2px 6px #b8860b73);width:72px;height:42px;display:block;overflow:visible}.aladdin-glow{filter:blur(4px);background:radial-gradient(circle,#ffd6668c 0%,#e8b44a33 48%,#0000 72%);border-radius:50%;width:36px;height:36px;animation:3.2s ease-in-out infinite aladdin-glow-pulse;position:absolute;top:-6px;left:-8px}.aladdin-spout{pointer-events:none;width:40px;height:40px;position:absolute;top:2px;left:2px}.aladdin-wisp{filter:blur(5px);background:radial-gradient(circle,#ffe08a8c 0%,#8b5cf62e 55%,#0000 72%);border-radius:50%;width:14px;height:22px;animation:3.8s ease-in-out infinite aladdin-wisp;position:absolute;top:10px;left:4px}.aladdin-wisp--b{width:10px;height:18px;animation-duration:4.4s;animation-delay:1.4s;left:10px}.aladdin-rise{position:absolute;top:8px;left:0}.aladdin-rise--a{animation:4.6s ease-out infinite aladdin-rise-a}.aladdin-rise--b{animation:3.8s ease-out 1.1s infinite aladdin-rise-b}.aladdin-rise--c{animation:3.2s ease-out 2s infinite aladdin-rise-c}.aladdin-ember{background:#ffe08a;border-radius:50%;width:4px;height:4px;animation:2.8s ease-out infinite aladdin-ember-a;position:absolute;top:14px;left:8px;box-shadow:0 0 7px 2px #ffe08abf}.aladdin-ember--b{background:#8b5cf6;animation:3.4s ease-out .8s infinite aladdin-ember-b;box-shadow:0 0 7px 2px #8b5cf6a6}.aladdin-ember--c{background:#4aa3ff;width:3px;height:3px;animation:3s ease-out 1.6s infinite aladdin-ember-c;box-shadow:0 0 6px 2px #4aa3ffb3}@keyframes aladdin-drift{0%{top:28%;left:8%}25%{top:18%;left:58%}50%{top:42%;left:64%}75%{top:48%;left:16%}to{top:28%;left:8%}}@keyframes aladdin-bob{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-5px)rotate(5deg)}}@keyframes aladdin-glow-pulse{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:.95;transform:scale(1.2)}}@keyframes aladdin-wisp{0%{opacity:.15;transform:translate(0)scale(.7)}50%{opacity:.8;transform:translate(-8px,-16px)scale(1.15)}to{opacity:0;transform:translate(-14px,-28px)scale(.6)}}@keyframes aladdin-rise-a{0%{opacity:0;transform:translate(0)scale(.4)}18%{opacity:1}to{opacity:0;transform:translate(-22px,-38px)scale(1)}}@keyframes aladdin-rise-b{0%{opacity:0;transform:translate(4px,2px)scale(.35)}22%{opacity:.9}to{opacity:0;transform:translate(-8px,-34px)scale(.95)}}@keyframes aladdin-rise-c{0%{opacity:0;transform:translate(-2px,4px)scale(.3)}20%{opacity:.85}to{opacity:0;transform:translate(-28px,-30px)scale(.8)}}@keyframes aladdin-ember-a{0%{opacity:0;transform:translate(0)scale(.5)}25%{opacity:1}to{opacity:0;transform:translate(-16px,-26px)scale(.8)}}@keyframes aladdin-ember-b{0%{opacity:0;transform:translate(2px)scale(.5)}25%{opacity:1}to{opacity:0;transform:translate(-6px,-30px)scale(.7)}}@keyframes aladdin-ember-c{0%{opacity:0;transform:translate(-2px,2px)scale(.4)}25%{opacity:1}to{opacity:0;transform:translate(-20px,-22px)scale(.6)}}.dark-mode .aladdin-lamp-icon{filter:drop-shadow(0 2px 8px #ffe08a73)}.dark-mode .aladdin-glow{background:radial-gradient(circle,#ffd666b3 0%,#e8b44a47 48%,#0000 72%)}@media (prefers-reduced-motion:reduce){.aladdin-wander,.aladdin-bob,.aladdin-glow,.aladdin-wisp,.aladdin-rise,.aladdin-ember{animation:none}.aladdin-wander{top:18px;left:auto;right:10px}.aladdin-spout{display:none}}
