@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,800;1,800&display=swap";:root{--primary-text-color: #202c39;--primary-bg-color: #f7f6fc;--secondary-bg-color: #ebebf3;--accent-blue: #0ea5c8;--accent-periwinkle: #6370d2;--accent-warm: #d63a8e;--accent-gray: #666b6e;--toggle-color: #fff;--status-bg-color: #a3e9c0;--status-dot-color: #16a34a;--status-text-color: #14532d;--dot-color: rgba(0, 0, 0, .15);color-scheme:light dark}.dark-mode{--primary-bg-color: #182535;--primary-text-color: #fbfbfb;--secondary-bg-color: #163352;--accent-gray: #b8bbbd;--toggle-color: var(--primary-bg-color);--status-bg-color: #15803d;--status-dot-color: #4ade80;--status-text-color: #f0fdf4;--dot-color: rgba(255, 255, 255, .14)}.prevent-select{-webkit-user-select:none;-ms-user-select:none;user-select:none}body{color:var(--primary-text-color);background-color:var(--primary-bg-color)}a{color:var(--primary-text-color);padding:.4em 0;text-decoration:none;cursor:pointer}a:hover,a:focus-visible{text-decoration:underline;text-underline-offset:.5rem}#dot-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none}.bg-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 15% 15%,rgba(14,165,200,.16) 0%,transparent 35%),radial-gradient(ellipse at 85% 80%,rgba(99,112,210,.22) 0%,transparent 32%),radial-gradient(ellipse at 80% 10%,rgba(214,58,142,.32) 0%,transparent 28%),radial-gradient(ellipse at 20% 85%,rgba(214,58,142,.18) 0%,transparent 25%);background-size:300% 300%;animation:gradientShift 45s ease infinite}@media (hover: hover){.bg-layer{background:none;animation:none}}@keyframes gradientShift{0%{background-position:0% 0%}50%{background-position:100% 100%}to{background-position:0% 0%}}.mouse-blob{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(55% 55% at var(--blob1-x, 50%) var(--blob1-y, 50%),rgba(99,112,210,.22) 0%,transparent 100%),radial-gradient(45% 45% at calc(100vw - var(--blob2-x, 50%)) calc(100vh - var(--blob2-y, 50%)),rgba(214,58,142,.2) 0%,transparent 100%),radial-gradient(30% 30% at calc(var(--blob3-x, 50%) * .3 + 5vw) calc(100vh - var(--blob3-y, 50%) * .4),rgba(14,165,200,.14) 0%,transparent 100%)}main,footer{max-width:68rem;margin:0 auto;padding:76px}@media (max-width: 520px){main,footer{padding:62px 24px}}h1{font-weight:800;font-size:4rem;background:linear-gradient(var(--h1-angle, 120deg),var(--primary-text-color) 30%,rgb(99 112 210 / 0) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;padding-bottom:.1em}@media (hover: none){h1{background:none;-webkit-background-clip:unset;background-clip:unset;-webkit-text-fill-color:var(--primary-text-color);padding-bottom:0}}@media (max-width: 520px){h1{font-size:2.8rem}}h2{font-size:1.6rem;margin:.6rem 0}h3{margin:.8rem 0 .4rem}p{margin-bottom:1rem}.sub{font-size:1.3rem;font-weight:600;margin:.4rem 0 1.5rem}header,.navbar{padding:1em 2em .2em;border-bottom:1px solid var(--secondary-bg-color);background-color:color-mix(in srgb,var(--primary-bg-color) 10%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;justify-content:space-between;align-items:center;font-size:.9em;color:var(--primary-text-color);font-weight:500;position:sticky;top:0;z-index:1000;transition:padding .22s ease,font-size .22s ease,box-shadow .22s ease,background-color .22s ease}.navbar.shrink{padding:.55em 1.5em .1em;font-size:.85em;background-color:color-mix(in srgb,var(--primary-bg-color) 55%,transparent);box-shadow:0 8px 24px -4px color-mix(in srgb,var(--primary-bg-color) 85%,transparent),0 1px 8px #00000014}header .logo,.navbar .logo{width:120px;transition:width .22s ease}.navbar.shrink .logo{width:96px}.menu{display:flex;gap:1.5em}nav{display:flex;align-items:center;gap:.4em;color:var(--primary-text-color)}nav .link{color:var(--primary-text-color);padding:.2em .6em;border-radius:4px;border:1px solid transparent;transition:background-color .2s ease,border-color .2s ease}nav .link:hover,nav .link:focus-visible{background-color:color-mix(in srgb,var(--primary-bg-color) 30%,transparent);border-color:color-mix(in srgb,var(--primary-text-color) 25%,transparent);color:var(--primary-text-color);text-decoration:none}nav a.active{color:var(--primary-text-color);text-decoration:underline;text-underline-offset:.5rem}.settings{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:0 1.5rem}@media (max-width: 520px){header{padding:1em 1em .2em}.menu{gap:10px}nav{gap:0}nav .link{padding:.2em .4em;font-size:1rem}.settings{padding:5px}}button.toggle-box{background-color:var(--primary-bg-color);border-radius:50px;padding:4px;color:var(--primary-text-color)}.settings .toggle-long{padding:4px 10px}.toggle-box{display:flex;align-items:center;gap:8px;border:1px solid transparent;transition:background-color .2s ease,border-color .2s ease}.toggle-box:hover,.toggle-box:focus-visible{color:var(--primary-text-color);background-color:color-mix(in srgb,var(--primary-bg-color) 30%,transparent);border-color:color-mix(in srgb,var(--primary-text-color) 25%,transparent)}.dark-mode-toggle{width:24px}@media (max-width: 520px){.dark-mode-toggle{width:28px}}.toggle{height:16px;width:32px;border-radius:8px;background-color:color-mix(in srgb,var(--accent-gray) 45%,transparent);border:1px solid color-mix(in srgb,var(--accent-gray) 60%,transparent);display:flex;align-items:center;padding:2px;transition:background-color .2s ease}.toggleOn{background-color:var(--accent-blue)}.switch{height:100%;width:12px;border-radius:50%;background-color:var(--toggle-color);animation-duration:.3s;animation-timing-function:ease;animation-fill-mode:forwards;animation-direction:normal;animation-play-state:running;transition:transform .3s ease}.switchOn{animation-name:switchOn}.switchOff{animation-name:switchOff}@keyframes switchOn{0%{transform:translate(0)}to{transform:translate(16px)}}@keyframes switchOff{0%{transform:translate(16px)}to{transform:translate(0)}}.hero{display:grid;gap:1.5em}.hero p{margin-bottom:0}.hero em{font-weight:800;font-style:italic}.tech-strip{margin-top:3rem}.hero .tech-strip{margin-top:0}.status-pill{background-color:color-mix(in srgb,var(--status-bg-color) 18%,color-mix(in srgb,var(--primary-bg-color) 25%,transparent));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid color-mix(in srgb,var(--status-dot-color) 55%,transparent);box-shadow:0 0 10px color-mix(in srgb,var(--status-dot-color) 10%,transparent);border-radius:5rem;padding:2px 10px;display:inline-flex;align-items:center;gap:6px;margin:1rem 0}.status-pill p{color:var(--status-text-color);font-size:.8rem;font-weight:600;margin:0}.status-pill .timestamp{font-weight:900}.circle{position:relative;width:6px;height:6px;background-color:var(--status-dot-color);border-radius:50%;box-sizing:border-box;flex-shrink:0}.circle:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background-color:var(--status-dot-color);animation:ping 2s ease-out infinite}@keyframes ping{0%{transform:scale(1);opacity:.7}80%,to{transform:scale(2.8);opacity:0}}.actionBtn,.actionBtn:hover,.actionBtn:focus-visible{display:flex;flex-direction:row;align-items:center;text-decoration:none}.actionBtn p{background-image:linear-gradient(var(--primary-text-color),var(--primary-text-color));background-size:0% 1px;background-repeat:no-repeat;background-position:left bottom;transition:background-size .3s ease;padding-bottom:.15rem}.actionBtn:hover p,.actionBtn:focus-visible p{background-size:100% 1px}.actionBtn>img{height:1.5em;margin-left:.8em;transform-origin:left center;animation:bounce 1.9s linear infinite}@keyframes bounce{0%,to{transform:translate(0) scaleX(.78) scaleY(1.18);animation-timing-function:linear}6%{transform:translate(.05em) scaleX(1) scaleY(1);animation-timing-function:ease-out}8%{transform:translate(.1em) scaleX(1.06) scaleY(.96);animation-timing-function:ease-out}50%{transform:translate(1.4em) scaleX(1) scaleY(1);animation-timing-function:ease-in}85%{transform:translate(.1em) scaleX(1.03) scaleY(.98);animation-timing-function:ease-in}96%{transform:translate(.02em) scaleX(1) scaleY(1);animation-timing-function:linear}}.featured-projects>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:.8em}.project-card{display:flex;flex-direction:column;gap:.1em;padding:20px;border-radius:16px;text-decoration:none;border:1px solid transparent;transition:background-color .25s ease,border-color .25s ease}.project-card img{background-color:var(--secondary-bg-color);object-fit:cover;object-position:center top;border-radius:8px;width:100%;height:180px;transition:transform .3s ease}.project-card:hover,.project-card:focus,.project-card:focus-visible{text-decoration:none}.project-card h3{width:fit-content;background-image:linear-gradient(var(--primary-text-color),var(--primary-text-color));background-size:0% 1px;background-repeat:no-repeat;background-position:left bottom;transition:background-size .3s ease;padding-bottom:.3rem}.project-card:hover h3,.project-card:focus h3,.project-card:focus-visible h3{background-size:100% 1px}@media (min-width: 521px){.project-card:hover,.project-card:focus-visible{background-color:color-mix(in srgb,var(--primary-bg-color) 30%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-color:color-mix(in srgb,var(--primary-text-color) 25%,transparent)}.project-card:hover img,.project-card:focus-visible img{transform:scale(1.05)}}@media (max-width: 520px){.project-card{padding:0 0 36px}.project-card img{height:120px}}.tech{display:flex;gap:6px;flex-wrap:wrap;margin-top:-10px}.tech span{border:1px solid color-mix(in srgb,var(--primary-text-color) 40%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--primary-text-color);padding:.2em .6em;border-radius:4px;font-size:.8em;font-weight:800}footer{padding-top:0}footer ul{display:grid;grid-template-columns:repeat(2,32px);grid-template-rows:32px;align-items:center;gap:.8em;list-style-type:none;padding-left:0}footer li{grid-row:1;padding:0}footer img{height:18px}:root{font-family:Plus Jakarta Sans,Helvetica,Arial,sans-serif;font-size:16px;line-height:24px;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}*,*:before,*:after{box-sizing:border-box}*{margin:0;line-height:calc(1em + .8rem)}html,body{height:100%}body{-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root,#__next{isolation:isolate}
