@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap");body{margin:0;color:#FFFFFF;background-color:#1A1A1A;font-family:"Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif}h1,h2,h3,p{color:#FFFFFF}h1{font-size:1.75em}h2{font-size:1.5em}a{color:#00AAFF}img{max-width:100%;height:auto;display:block;margin:0 auto}iframe{display:block;margin:0 auto}blockquote{font-style:italic;margin:1em 1.5em;padding:0.5em 1em;border-left:4px solid #555;color:#CDCDCD}#site-header{width:100%;padding:0;margin:0;background-image:linear-gradient(141deg, #0DDCED 0%, #8DC885 71%, #EDD24D 100%)}.header-inner{padding:2rem}.site-title{margin:0;font-size:2rem}.site-title a{color:#FFFFFF;text-decoration:none}.site-description{color:#FFFFFF;margin:0.25rem 0 0}.header-back{color:#FFFFFF;text-decoration:none;font-size:0.9rem;opacity:0.85}.header-back:hover{opacity:1;text-decoration:underline}#site-footer{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;padding:1.5rem 0}#site-footer p{margin:0;font-size:1.2rem}.site-feed a{color:#FFFFFF;text-decoration:none}.site-feed a:hover{text-decoration:underline}#signature-div{width:100%;max-width:470px;margin:0 auto}#signature{width:100%;height:auto;display:block}path{fill:none;stroke:#FFFFFF;stroke-width:35;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:100;animation-play-state:paused;opacity:0%}.stroke-1{stroke:#FFFFFF;stroke-dasharray:834.2235717773438;animation:write1 250ms 1 ease-out 0ms;animation-fill-mode:forwards}.stroke-2{stroke:#FFFFFF;stroke-dasharray:1033.7283935546875;animation:write2 500ms 1 ease-out 250ms;animation-fill-mode:forwards}.stroke-3{stroke:#FFFFFF;stroke-dasharray:1910.6036376953125;animation:write3 250ms 1 ease-out 750ms;animation-fill-mode:forwards}.stroke-4{stroke:#FFFFFF;stroke-dasharray:668.1366577148438;animation:write4 250ms 1 ease-out 1250ms;animation-fill-mode:forwards}.stroke-5{stroke:#FFFFFF;stroke-dasharray:499.8692321777344;animation:write5 125ms 1 ease-out 1500ms;animation-fill-mode:forwards}.stroke-6{stroke:#FFFFFF;stroke-dasharray:381.5518798828125;animation:write6 125ms 1 ease-out 1750ms;animation-fill-mode:forwards}.stroke-7{stroke:#FFFFFF;stroke-dasharray:241.93394470214844;animation:write7 125ms 1 ease-out 1875ms;animation-fill-mode:forwards}.stroke-8{stroke:#FFFFFF;stroke-dasharray:157.96774291992188;animation:write8 125ms 1 ease-out 2000ms;animation-fill-mode:forwards}.stroke-9{stroke:#FFFFFF;stroke-dasharray:281.0364685058594;animation:write9 125ms 1 ease-out 2125ms;animation-fill-mode:forwards}.stroke-10{stroke:#FFFFFF;stroke-dasharray:310.84185791015625;animation:write10 125ms 1 ease-out 2250ms;animation-fill-mode:forwards}.stroke-11{stroke:#FFFFFF;stroke-dasharray:673.0997314453125;animation:write11 250ms 1 ease-out 2375ms;animation-fill-mode:forwards}.stroke-12{stroke:#FFFFFF;stroke-dasharray:1588.2130126953125;animation:write12 250ms 1 ease-out 2675ms;animation-fill-mode:forwards}.stroke-13{stroke:#FFFFFF;stroke-dasharray:424.28851318359375;animation:write13 125ms 1 ease-out 3000ms;animation-fill-mode:forwards}.i-dot{stroke:#FFFFFF;fill:#FFFFFF;animation:writeI 125ms 1 ease-out 3250ms;animation-fill-mode:forwards}@keyframes write1{from{stroke-dashoffset:834.2235717773438;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write2{from{stroke-dashoffset:1033.7283935546875;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write3{from{stroke-dashoffset:1910.6036376953125;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write4{from{stroke-dashoffset:668.1366577148438;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write5{from{stroke-dashoffset:499.8692321777344;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write6{from{stroke-dashoffset:381.5518798828125;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write7{from{stroke-dashoffset:241.93394470214844;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write8{from{stroke-dashoffset:157.96774291992188;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write9{from{stroke-dashoffset:281.0364685058594;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write10{from{stroke-dashoffset:310.84185791015625;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write11{from{stroke-dashoffset:673.0997314453125;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write12{from{stroke-dashoffset:1588.2130126953125;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes write13{from{stroke-dashoffset:424.28851318359375;opacity:100%}to{stroke-dashoffset:0;opacity:100%}}@keyframes writeI{from{opacity:0%}to{opacity:100%}}.post-grid-container{max-width:1200px;margin:0 auto;padding:0 1rem}.category-archive-title{font-size:2rem;text-align:center;margin:2rem 0 0}.post-list{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:2rem;padding:2rem}.post-card{background-color:#2B2B2B;padding:2rem;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,0.4);transition:transform 0.2s ease;display:flex;flex-direction:column;justify-content:center;text-align:center;min-height:100px}.entry-subtitle{font-size:1.1rem;text-align:center;margin:0 0 0.5rem;color:#CDCDCD;text-decoration:none}.post-title{font-size:3rem;text-align:center;margin:0 0 0.5rem}.post-subtitle{font-size:2rem;text-align:center;margin:0 0 0.5rem;color:#CDCDCD}.entry-meta{color:#CDCDCD;font-size:.9rem;text-align:center;margin-bottom:1rem}.entry-date{font-size:1rem;font-weight:600;color:#0DDCED;text-align:center;margin:0 0 0.5rem}.category-list{display:flex;flex-wrap:wrap;justify-content:center;gap:0.5rem}.category{background-color:#3C3C3C;border-radius:6px;padding:0.25rem 0.6rem;font-size:.9rem;color:#CDCDCD}.post-meta{color:#CDCDCD;font-size:1.1rem;text-align:center;margin-bottom:1rem}.post-category{color:#CDCDCD;font-size:1.1rem;text-align:center;margin-bottom:1rem}.excerpt{color:#E0E0E0;font-size:1.2rem}.post .entry-date{padding-top:1.5rem}.entry-content{font-size:1.4rem;max-width:1344px;margin:0 auto;padding:0 1rem;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}article,.post-body{color:#FFFFFF}.post-citations{font-size:1.1rem;padding-top:2rem;padding-bottom:3rem}pre{background-color:#2B2B2B;padding:1rem;border-radius:8px;overflow-x:auto;box-shadow:0 2px 6px rgba(0,0,0,0.4);margin:1.5rem 0}pre code{font-family:'Fira Code', monospace;font-size:1.0rem;background:none;padding:0;display:block}code:not(pre code){background-color:#2B2B2B;padding:0.2rem 0.4rem;border-radius:4px;font-size:0.85rem}.hero{background-image:linear-gradient(141deg, #0DDCED 0%, #8DC885 71%, #EDD24D 100%);min-height:50vh;padding:4rem 2rem;text-align:center;display:flex;align-items:center;justify-content:center}.hero-body{width:100%}.hero-profile-pic{width:128px;height:128px;border-radius:50%;margin:0 auto 1.5rem;display:block}.hero-typed{font-size:2rem;font-weight:600;color:#FFFFFF;margin:0 0 0.5rem;min-height:3rem}.hero-typed strong{font-weight:600}.hero-subtitle{font-size:1.25rem;color:#FFFFFF;margin:0 0 1.5rem}.hero-social{display:flex;justify-content:center;gap:2rem;margin-top:1rem}.hero-social a{color:#FFFFFF;font-size:1.1rem;text-decoration:none;transition:opacity 0.2s ease}.hero-social a:hover{opacity:0.8}.hero-scroll-hint{margin-top:2rem;color:#FFFFFF;font-size:1.5rem}.portfolio-section{max-width:1344px;margin:3rem auto;padding:0 2rem;text-align:center}.section-title{font-size:2rem;margin-bottom:2rem;color:#FFFFFF}.projects-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:2rem}.project-item{width:300px;text-align:center}.project-item a{color:#FFFFFF;text-decoration:none}.project-item a:hover{text-decoration:underline}.project-icon{width:128px;height:128px;border-radius:22px;margin:0 auto 0.75rem;display:block;transition:filter 0.2s ease}.project-item a:hover .project-icon{filter:brightness(1.1)}.project-name{font-size:1.375rem;font-weight:600;margin:0 0 0.25rem;color:#FFFFFF}.project-subtitle{font-size:.9rem;color:#CDCDCD;margin:0}.blogs-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:2rem}.blog-item{width:360px;text-align:center}.blog-item a{color:#FFFFFF;text-decoration:none}.blog-item a:hover{text-decoration:underline}.blog-icon{width:128px;height:128px;border-radius:22px;margin:0 auto 0.75rem;display:block;transition:filter 0.2s ease}.blog-item a:hover .blog-icon{filter:brightness(1.1)}.blog-name{font-size:1.375rem;font-weight:600;margin:0 0 0.25rem;color:#FFFFFF}.blog-subtitle{font-size:.9rem;color:#CDCDCD;margin:0}.info-card{display:block;background-color:#2B2B2B;border-radius:8px;padding:1.5rem 2rem;margin-bottom:1.5rem;box-shadow:0 2px 6px rgba(0,0,0,0.4);text-align:left}.card-link{color:inherit;text-decoration:none}.card-link:hover{filter:brightness(1.1)}.info-card-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:0.5rem;margin-bottom:0.5rem}.info-card-title{font-size:1.375rem;font-weight:600;margin:0;color:#FFFFFF}.info-card-date{font-size:1rem;font-weight:600;color:#0DDCED;white-space:nowrap;margin:0}.info-card-org{font-size:1.1rem;font-weight:600;color:#CDCDCD;margin:0.25rem 0 0}.info-card-detail{font-size:1rem;color:#CDCDCD;margin:0.25rem 0 0}.info-card-body{margin-top:1rem;font-size:1rem;color:#E0E0E0}.thesis-box{background-color:#3C3C3C;border-radius:6px;padding:1rem 1.5rem;margin-top:1rem}.thesis-box a{font-size:1rem;font-weight:600;color:#FFFFFF;text-decoration:none}.thesis-box a:hover{text-decoration:underline}.thesis-box p{font-size:0.95rem;color:#CDCDCD;margin:0.5rem 0 0}.latest-post-card{background-color:#2B2B2B;border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,0.4);display:flex;align-items:stretch;overflow:hidden;margin-top:2rem}.latest-post-body{padding:2rem;flex:1;text-align:center;display:flex;flex-direction:column;justify-content:center}.latest-post-label{color:#0DDCED;font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;margin:0 0 0.75rem}.latest-post-image{width:280px;flex-shrink:0;object-fit:cover;display:block;margin:0}.latest-post-title{font-size:1.75rem;font-weight:600;margin:0 0 0.5rem}.latest-post-meta{color:#CDCDCD;font-size:1.1rem;margin:0 0 1rem}.latest-post-link{color:#0DDCED;font-weight:600;margin-top:0.5rem}.view-all-link{display:inline-block;margin-top:1.5rem;color:#0DDCED;font-size:1.1rem;text-decoration:none}.view-all-link:hover{text-decoration:underline}.page-content{max-width:900px;margin:3rem auto;padding:0 2rem}.page-content h1,.page-content h2,.page-content h3{color:#FFFFFF}.page-content p,.page-content li{color:#E0E0E0;font-size:1.1rem;line-height:1.7}.project-hero{max-width:1344px;margin:0 auto;padding:3rem 2rem 2rem;text-align:center}.project-hero-icon{width:128px;height:128px;border-radius:28px;margin:0 auto 1.5rem;display:block}.project-hero-title{font-size:3rem;margin:0 0 0.5rem}.project-hero-subtitle{font-size:1.25rem;color:#CDCDCD;margin:0 0 1.5rem}.project-hero-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:1rem;margin-top:1rem}.project-action-button{display:inline-flex;align-items:center;gap:0.5rem;background-color:#2B2B2B;color:#FFFFFF;text-decoration:none;padding:0.65rem 1.25rem;border-radius:6px;font-weight:600;font-size:0.95rem;transition:filter 0.2s ease}.project-action-button:hover{filter:brightness(1.15)}.project-action-button.is-disabled{opacity:0.6}.app-store-badge img{height:48px;width:auto}.project-body{max-width:1344px;margin:1rem auto 3rem;padding:0 2rem}.project-section{margin-bottom:3rem;text-align:center}.project-section-title{font-size:2rem;margin-bottom:1rem}.project-section-body{font-size:1.1rem;color:#CDCDCD;max-width:760px;margin:0 auto 1.5rem;line-height:1.6}.project-section-note{font-size:0.9rem;color:#CDCDCD}.project-screenshot{border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,0.4);max-width:100%}.project-disclaimer{background-color:#2B2B2B;border-radius:8px;padding:1.5rem 2rem;text-align:left}.project-disclaimer-title{color:#0DDCED;font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;margin:0 0 0.75rem}.project-disclaimer p{color:#CDCDCD;margin:0}.project-chart-card{background-color:#2B2B2B;border-radius:8px;padding:1.5rem;max-width:700px;margin:0 auto}@media (max-width: 600px){.hero{padding:3rem 1.5rem}.portfolio-section{margin:2rem auto;padding:0 1.25rem}.projects-grid,.blogs-grid{flex-direction:column;align-items:center}.project-item,.blog-item{width:100%}.info-card{text-align:center}.latest-post-image{display:none}.info-card-header{flex-direction:column;align-items:center;gap:0.25rem}.post-list{grid-template-columns:1fr;padding:1rem}.post-title{font-size:2rem}.post-subtitle{font-size:1.5rem}.entry-content{font-size:1.15rem}.project-hero{padding:2rem 1.25rem 1.5rem}.project-hero-title{font-size:2rem}}
