:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{background-color:#000000d9}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{border:none}.read-the-docs{color:#888}.project-card .card-body{display:flex;flex-direction:column;height:100%;text-align:left;cursor:pointer}.project-card:hover{transform:scale(1.04);box-shadow:0 8px 32px #a259ff40,0 2px 8px #0000001a;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1)}.project-card{transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1)}.ribbon{position:absolute;top:12px;right:12px;background:linear-gradient(135deg,#14b8a6,#0d9488);color:#f0fdfa;padding:.25rem .6rem;font-weight:700;font-size:.85rem;border-radius:6px;box-shadow:0 4px 14px #14b8a659;z-index:10;text-transform:uppercase;letter-spacing:.04em}.modal-wip{background:linear-gradient(135deg,#14b8a6,#0d9488);color:#f0fdfa;padding:.25rem .6rem;font-weight:700;font-size:.85rem;border-radius:6px;box-shadow:0 4px 14px #14b8a659;text-transform:uppercase;letter-spacing:.04em;text-align:center;max-width:fit-content;margin-inline:auto;margin-top:.5em}.description{white-space:pre-line}.skill-tags{margin-bottom:2px;display:flex;gap:6px;flex-wrap:wrap}.skill{background:linear-gradient(135deg,#8b5cf6,#6d28d9);box-shadow:0 2px 8px #6d28d959;color:#fff;padding:.3rem .7rem;font-weight:600;border-radius:20px;font-size:.8rem;letter-spacing:.01em}.project-card-carousel img{width:100%;height:220px;object-fit:cover}.modal-carousel{padding:1px;background:linear-gradient(135deg,#a259ff,#e0b3ff);border-radius:8px;box-shadow:0 0 16px 4px #a259ff80,0 0 8px 2px #fff3 inset;display:flex;align-items:center;justify-content:center}.modal-carousel img{width:100%;object-fit:cover;border-radius:8px}.modal-dialog .modal-content{border:none}.badge-in-dev{background:#ffc107;color:#111}@media (prefers-color-scheme: light){.project-card-placeholder{background:linear-gradient(135deg,#f4f6fb,#eef3ff);color:#334}}.row{display:flex;flex-wrap:wrap;justify-content:flex-start}h2{text-align:center;border-bottom-width:1px;border-bottom-color:#fff;border-bottom-style:inset}.bottom-divider{border-bottom:1px inset plum}html{scroll-behavior:smooth;scroll-padding-top:6rem}#navbar-section{padding-top:1em;position:fixed;width:100%;top:0;z-index:100;text-align:center}#navbar{background-color:#fff;box-shadow:0 6px 24px #6d28d959;border-radius:30px;text-align:center;width:min(50%,900px);padding-inline:2em;margin:0 auto;color:#000}#navbar .navbar-nav .nav-link{color:#222;font-weight:500;padding-inline:.9rem;transition:color .15s ease}#navbar .navbar-nav .nav-link:hover,#navbar .navbar-nav .nav-link:focus{color:#6d28d9}@media (max-width: 767.98px){#navbar{width:calc(100% - 1.5rem);border-radius:18px;padding-inline:1em}#navbar .navbar-nav{padding-top:.5rem;text-align:left}}#title-section{background-image:radial-gradient(#00000040,#000000a6),url(/hero-background.jpeg);background-size:cover;background-repeat:no-repeat;background-position:center;min-height:80vh;margin-inline:0;color:#fff;display:flex;flex-direction:column;justify-content:space-between}#title-text{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding-block:clamp(4rem,12vh,9rem);flex:1}#title-text h1{font-size:clamp(2.25rem,5vw,3.5rem);font-weight:700;margin-bottom:.75rem;text-shadow:0 2px 12px rgba(0,0,0,.4)}.subtitle{font-weight:600;font-size:clamp(1rem,1.6vw,1.2rem);max-width:42rem;opacity:.95;line-height:1.5}.subtitle-tagline{display:inline-block;margin-top:.4rem;font-weight:400;font-size:clamp(.9rem,1.3vw,1.05rem);opacity:.85}.hero-ctas{display:flex;gap:1rem;margin-top:1.75rem;flex-wrap:wrap;justify-content:center}.hero-ctas .btn{border-radius:999px;padding-inline:1.5rem;font-weight:600}section{color:#fff}.text-section{padding:clamp(2rem,6vw,5rem) clamp(1.25rem,8vw,10rem)}.text-section h3{margin-top:1.5rem;color:#e0b3ff}h2{margin-top:0;padding-top:clamp(2rem,6vw,4rem);padding-bottom:.5rem}.narrow-body{margin-inline:10%}#contact-section{padding-bottom:clamp(2rem,5vw,4rem)}.contact-container{padding-top:1.5rem}.contact-icon{width:64px;transition:transform .15s ease,filter .15s ease}.contact-icon:hover{transform:translateY(-2px) scale(1.05);filter:drop-shadow(0 4px 12px rgba(162,89,255,.55))}.site-footer{text-align:center;padding:1.5rem 1rem 2rem;color:#fff9;font-size:.9rem;border-top:1px solid rgba(255,255,255,.08)}.site-footer a{color:#e0b3ffd9;text-decoration:none}.site-footer a:hover{color:#fff;text-decoration:underline}.footer-divider{margin-inline:.6rem;opacity:.5}.footer{justify-items:center;justify-content:center}
