body{background:radial-gradient(circle at top,#fff 0,#e7f0ff 40%,#dbeafe 100%);color:#0f172a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0;overflow:auto}.icon{filter:drop-shadow(0 6px 14px rgba(15,23,42,.25));height:80px;position:absolute;transition:filter .2s ease-out;width:80px;will-change:transform,filter}.icon[src*="zig.svg"]{height:42px;width:120px}.icon-container{height:100dvh;left:0;overflow:hidden;pointer-events:none;position:fixed;top:0;width:100dvw;z-index:0}.App{text-align:center;z-index:1}.App,.App-header{position:relative}.App-header{align-items:center;background:#0000;color:#0f172a;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100dvh;text-shadow:0 1px 3px #94a3b866;z-index:2}.App-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(45deg,#2563eb,#7c3aed);-webkit-background-clip:text;background-clip:text;font-size:4rem;margin-bottom:1rem}.App-header p{font-size:1.8rem;opacity:.9}@keyframes driftAcross1{0%{transform:translate(-20vw,-25vh) rotate(0deg) scale(1)}20%{transform:translate(30vw,-18vh) rotate(90deg) scale(1.05)}40%{transform:translate(60vw,20vh) rotate(180deg) scale(1)}60%{transform:translate(20vw,45vh) rotate(270deg) scale(.95)}80%{transform:translate(-25vw,35vh) rotate(1turn) scale(1.02)}to{transform:translate(-20vw,-25vh) rotate(2turn) scale(1)}}@keyframes driftAcross2{0%{transform:translate(65vw,-30vh) rotate(0deg) scale(1)}25%{transform:translate(-18vw,-10vh) rotate(-120deg) scale(1.03)}50%{transform:translate(-70vw,30vh) rotate(-240deg) scale(.97)}75%{transform:translate(10vw,55vh) rotate(-1turn) scale(1.01)}to{transform:translate(65vw,-30vh) rotate(-2turn) scale(1)}}@keyframes driftAcross3{0%{transform:translate(-75vw,18vh) rotate(0deg) scale(1)}15%{transform:translate(-30vw,-35vh) rotate(180deg) scale(1.04)}30%{transform:translate(45vw,-28vh) rotate(1turn) scale(.96)}45%{transform:translate(80vw,12vh) rotate(540deg) scale(1.02)}60%{transform:translate(25vw,65vh) rotate(2turn) scale(.98)}75%{transform:translate(-55vw,50vh) rotate(900deg) scale(1.03)}90%{transform:translate(-80vw,-18vh) rotate(3turn) scale(.97)}to{transform:translate(-75vw,18vh) rotate(4turn) scale(1)}}@keyframes driftAcross4{0%{transform:translate(20vw,55vh) rotate(0deg) scale(1)}20%{transform:translate(70vw,-12vh) rotate(-180deg) scale(1.02)}40%{transform:translate(-20vw,-70vh) rotate(-1turn) scale(.98)}60%{transform:translate(-85vw,-32vh) rotate(-540deg) scale(1.05)}80%{transform:translate(-45vw,80vh) rotate(-2turn) scale(.95)}to{transform:translate(20vw,55vh) rotate(-3turn) scale(1)}}@keyframes driftAcross5{0%{transform:translate(-30vw,-70vh) rotate(0deg) scale(1)}30%{transform:translate(80vw,-45vh) rotate(270deg) scale(1.03)}60%{transform:translate(45vw,80vh) rotate(540deg) scale(.97)}90%{transform:translate(-80vw,22vh) rotate(810deg) scale(1.01)}to{transform:translate(-30vw,-70vh) rotate(3turn) scale(1)}}.floating{animation:driftAcross1 90s linear infinite}.floating:nth-child(odd){animation-delay:-15s;animation-duration:110s;animation-name:driftAcross2}.floating:nth-child(3n){animation-delay:-30s;animation-duration:130s;animation-name:driftAcross3}.floating:nth-child(4n){animation-delay:-45s;animation-duration:150s;animation-name:driftAcross4}.floating:nth-child(5n){animation-delay:-60s;animation-duration:170s;animation-name:driftAcross5}.floating:nth-child(7n){animation-delay:-75s;animation-duration:200s}.hero-section{align-items:center;display:flex;justify-content:center;min-height:100dvh;position:relative;z-index:2}.contact-section,.projects-section{min-height:100vh;padding:80px 20px;position:relative;z-index:2}.section-content{margin:0 auto;max-width:1200px}.section-content h2{-webkit-text-fill-color:#0000;background:linear-gradient(45deg,#0ea5e9,#6366f1);-webkit-background-clip:text;background-clip:text;font-size:3rem;margin-bottom:3rem;text-align:center}.projects-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:2rem}.project-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #94a3b873;border-radius:12px;box-shadow:0 14px 30px #0f172a1f;padding:2rem;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}.project-card:hover{border-color:#38bdf8;box-shadow:0 18px 45px #0f172a2e;transform:translateY(-5px)}.project-card h3{color:#0f172a;font-size:1.5rem;margin-bottom:1rem}.project-card p{color:#1f2933;line-height:1.6;margin-bottom:1.5rem;opacity:.9}.tech-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.tech-tag{background:#38bdf826;border:1px solid #38bdf84d;border-radius:20px;color:#0f172a;font-size:.8rem;padding:.3rem .8rem}.project-links{display:flex;gap:1rem}.project-link{background:#0000;border:1px solid #0ea5e9;border-radius:6px;color:#0369a1;padding:.5rem 1rem;text-decoration:none;transition:all .3s ease}.live-demo,.project-link:hover{background:#0ea5e9;color:#f9fafb}.live-demo:hover{background:#0000;color:#0369a1}.contact-content{grid-gap:4rem;align-items:start;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:grid;gap:4rem;grid-template-columns:1fr 1fr;opacity:.95;transition:transform .3s ease,border-color .3s ease}.contact-info p{background:radial-gradient(circle at top left,#fffffffa,#e2e8fffa);border:1px solid #94a3b866;border-radius:16px;box-shadow:0 16px 32px #0f172a2e;font-size:1.2rem;line-height:1.6;margin-bottom:2rem;opacity:.95}.contact-links{display:flex;flex-direction:column;gap:1rem}.contact-link{background:#ffffffd9;border:1px solid #94a3b880;border-radius:8px;color:#0369a1;font-size:1.1rem;padding:.8rem 1rem;text-decoration:none;transition:all .3s ease}.contact-link:hover{background:#e0f2fe;border-color:#0ea5e9;transform:translateX(5px)}.contact-form-wrapper{align-items:stretch;display:flex;justify-content:center}.contact-form-card{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:radial-gradient(circle at top left,#fffffffa,#e2e8fffa);border:1px solid #94a3b873;border-radius:16px;box-shadow:0 18px 45px #0f172a29;max-width:480px;padding:2rem 2.2rem;text-align:left;width:100%}.contact-form-card h3{color:#0f172a;font-size:1.6rem;margin:0 0 .5rem}.contact-form-subtitle{background:#eff6ffe6;border:1px solid #bfdbfee6;border-radius:12px;box-shadow:0 10px 24px #94a3b859;font-size:.95rem;margin:0 0 1.5rem;opacity:.8;padding:.6rem .8rem}.contact-form{gap:1.1rem}.contact-form,.form-row{display:flex;flex-direction:column}.form-row{align-items:flex-start;gap:.35rem}.form-row label{color:#0f172acc;font-size:.9rem;letter-spacing:.03em;text-transform:uppercase}.form-row input,.form-row textarea{background:#f9fafb;border:1px solid #94a3b8b3;border-radius:10px;color:#0f172a;font-size:.95rem;outline:none;padding:.7rem .9rem;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;width:100%}.form-row input::placeholder,.form-row textarea::placeholder{color:#94a3b8e6}.form-row input:focus,.form-row textarea:focus{background:#fff;border-color:#0ea5e9;box-shadow:0 0 0 2px #38bdf859}.contact-submit{background:linear-gradient(120deg,#0ea5e9,#38bdf8,#6366f1);border:none;border-radius:999px;box-shadow:0 10px 30px #2563eb73;color:#f9fafb;cursor:pointer;font-size:.95rem;font-weight:600;letter-spacing:.03em;margin-top:.5rem;outline:none;padding:.8rem 1rem;text-transform:uppercase;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease;width:100%}.contact-submit:hover{box-shadow:0 16px 40px #2563eb99;filter:brightness(1.05);transform:translateY(-1px)}.contact-submit:active{box-shadow:0 10px 25px #2563eb66;transform:translateY(1px)}@media (max-width:768px){.icon{height:40px!important;width:40px!important}.icon[src*="zig.svg"]{height:21px!important;width:40px!important}@keyframes driftAcrossMobile1{0%{transform:translate(-100px,-80px) rotate(0deg) scale(1)}20%{transform:translate(80px,-60px) rotate(90deg) scale(1.05)}40%{transform:translate(150px,60px) rotate(180deg) scale(1)}60%{transform:translate(60px,120px) rotate(270deg) scale(.95)}80%{transform:translate(-80px,80px) rotate(1turn) scale(1.02)}to{transform:translate(-100px,-80px) rotate(2turn) scale(1)}}@keyframes driftAcrossMobile2{0%{transform:translate(120px,-100px) rotate(0deg) scale(1)}25%{transform:translate(-60px,-30px) rotate(-120deg) scale(1.03)}50%{transform:translate(-150px,80px) rotate(-240deg) scale(.97)}75%{transform:translate(30px,150px) rotate(-1turn) scale(1.01)}to{transform:translate(120px,-100px) rotate(-2turn) scale(1)}}.floating{animation-duration:60s!important;animation-name:driftAcrossMobile1!important}.floating:nth-child(odd){animation-duration:70s!important;animation-name:driftAcrossMobile2!important}.floating:nth-child(3n){animation-duration:80s!important}.contact-content{gap:2rem}.contact-content,.projects-grid{grid-template-columns:1fr}.section-content h2{font-size:2.5rem}.App-header h1{font-size:3rem}.App-header p{font-size:1.4rem}.contact-form-card{max-width:100%}}@media (max-width:480px){.icon{height:40px!important;width:40px!important}.icon[src*="zig.svg"]{height:25px!important;width:40px!important}.App-header h1{font-size:2.5rem}.App-header p{font-size:1.2rem}.section-content h2{font-size:2rem}.project-card{padding:1.5rem}}.blog-page{min-height:100vh;padding:28px 18px 60px}.blog-topbar{align-items:center;display:flex;gap:12px;justify-content:space-between;margin:0 auto 18px;max-width:980px}.blog-back,.blog-raw{background:#ffffff0f;border-radius:10px;color:inherit;padding:8px 12px;text-decoration:none}.blog-status{opacity:.8}.blog-error,.blog-status{margin:0 auto;max-width:980px}.blog-error{background:#ff000014;border-radius:14px;padding:18px}.blog-article{font-size:1.05rem;line-height:1.75;margin:0 auto;max-width:980px}.blog-article pre{background:#ffffff0f;border-radius:12px;overflow-x:auto;padding:12px}.blog-article code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.icon.falling{filter:blur(1.5px) drop-shadow(0 4px 6px rgba(15,23,42,.25))}@media (prefers-reduced-motion:reduce){.icon{animation:none!important;transition:none!important}.icon.falling{filter:none!important}}@media (max-width:600px){@keyframes driftAcrossMobile1{0%{transform:translate(2vw,4vh) rotate(0deg) scale(1)}25%{transform:translate(88vw,10vh) rotate(90deg) scale(1.05)}50%{transform:translate(75vw,85vh) rotate(180deg) scale(1)}75%{transform:translate(5vw,75vh) rotate(270deg) scale(.95)}to{transform:translate(2vw,4vh) rotate(1turn) scale(1)}}@keyframes driftAcrossMobile2{0%{transform:translate(85vw,5vh) rotate(0deg) scale(1)}33%{transform:translate(8vw,30vh) rotate(-120deg) scale(1.03)}66%{transform:translate(80vw,80vh) rotate(-240deg) scale(.97)}to{transform:translate(85vw,5vh) rotate(-1turn) scale(1)}}.floating{animation-duration:60s!important;animation-name:driftAcrossMobile1!important}.floating:nth-child(odd){animation-duration:70s!important;animation-name:driftAcrossMobile2!important}.floating:nth-child(3n){animation-duration:80s!important}.floating:nth-child(4n){animation-duration:120s!important;animation-name:driftAcrossMobile1!important}.floating:nth-child(5n){animation-duration:95s!important;animation-name:driftAcrossMobile2!important}.floating:nth-child(7n){animation-duration:110s!important}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}
/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{background:#0d1117;color:#c9d1d9}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{background-color:#033a16;color:#aff5b4}.hljs-deletion{background-color:#67060c;color:#ffdcd7}
/*# sourceMappingURL=main.36def357.css.map*/