@import url("https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Geist+Mono:wght@300;400;500&display=swap");:root{--bg: #f9f9f7;--text: #1a1a1a;--muted: #6b7280;--accent: #e85c2c;--border: #e5e5e0;--sidebar-w: 180px;--content-max: 620px}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;scroll-behavior:smooth}body{background-color:var(--bg);background-image:radial-gradient(circle, rgba(209,208,204,.5) 1px, rgba(0,0,0,0) 1px);background-size:24px 24px;color:var(--text);font-family:"Geist Mono","Courier New",monospace;font-size:.9rem;line-height:1.7;display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;width:var(--sidebar-w);height:100vh;overflow-y:auto;padding:2.5rem 1.5rem;display:flex;flex-direction:column;gap:.25rem}.home-flame{display:inline-block;line-height:1;margin-bottom:1.5rem;animation:flicker 1.8s ease-in-out infinite alternate,glow 2.2s ease-in-out infinite alternate}.home-flame svg{width:48px;height:48px;display:block;overflow:visible}.home-flame-core{transition:transform .16s ease-out;will-change:transform}.home-flame-inner{transition:fill .3s ease}@keyframes flicker{0%{transform:scale(1) translateY(0)}100%{transform:scale(1.05) translateY(-2px)}}@keyframes glow{0%{filter:drop-shadow(0 0 4px rgba(232,80,20,.4))}100%{filter:drop-shadow(0 0 12px rgba(232,80,20,.8))}}.sidebar nav{display:flex;flex-direction:column;gap:.15rem}.sidebar nav a{color:var(--muted);text-decoration:none;font-size:.85rem;font-weight:400;padding:.15rem 0;transition:color .15s}.sidebar nav a:hover,.sidebar nav a.active{color:var(--text);font-weight:500}.sidebar-social{display:flex;gap:.95rem;margin-top:.85rem;align-items:center}.sidebar-divider{display:none}.sidebar-social a{color:var(--muted);text-decoration:none;transition:color .15s;display:flex;align-items:center}.sidebar-social a:hover{color:var(--text)}.sidebar-social svg{width:18px;height:18px}.sidebar-location{margin-top:auto;color:var(--muted);font-size:.78rem;padding-top:1.1rem;line-height:1.5}.sidebar-time,.sidebar-weather{margin-top:.35rem;font-size:.75rem;font-family:"Geist Mono",monospace;color:var(--muted)}.rotating-tagline{display:inline-block;margin-bottom:1.2rem;font-size:.85rem;font-family:"Geist Mono",monospace;color:var(--muted);min-height:1.4rem}.tagline-prefix{margin-right:.25rem}.tagline-text{animation:taglineRotate 2.5s ease-out}@keyframes taglineRotate{0%{opacity:0;transform:translateY(8px)}4%{opacity:1;transform:translateY(0)}92%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-8px)}}.main{grid-column:2;padding:2.5rem;max-width:var(--content-max);justify-self:start;width:100%}h1{font-family:"Instrument Serif",Georgia,serif;font-size:2.2rem;font-weight:400;line-height:1.2;margin-bottom:.75rem;letter-spacing:-.01em}h2{font-family:"Instrument Serif",Georgia,serif;font-size:1.3rem;font-weight:400;margin:2.5rem 0 .75rem}h3{font-size:.85rem;font-weight:500;margin:1.5rem 0 .5rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}p{margin-bottom:1rem;color:var(--text)}a{color:var(--text)}a:hover{color:var(--accent)}code{font-family:"Geist Mono",monospace;background:#efefeb;padding:.1em .4em;border-radius:3px;font-size:.85em}.home-intro{margin-bottom:3rem}.home-intro p{color:var(--muted);font-size:.88rem;max-width:480px}.posts-year{position:relative;font-family:"Instrument Serif",Georgia,serif;font-size:1.45rem;font-weight:400;margin:2rem 0 1.1rem;line-height:1}.posts-year span{position:relative;display:inline-block;padding-right:.7rem}.post-item{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.9rem 1rem;margin-bottom:.55rem;border-left:2px solid rgba(0,0,0,0);background:rgba(0,0,0,0);transform:translateX(0);text-decoration:none;color:var(--text);transition:all .2s ease}.post-item:hover{background:#f3f1ee;border-left-color:var(--accent);transform:translateX(4px)}.post-item-main{min-width:0;flex:1}.post-topic{display:inline-flex;align-items:center;font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:.15rem .55rem;margin-bottom:.45rem;border:1px solid rgba(0,0,0,0)}.post-topic-genai{background:#feece6;border-color:#f4c6b5;color:#9e4525}.post-topic-database{background:#f3ece3;border-color:#e0ccb8;color:#8a5630}.post-topic-data{background:#f5efe8;border-color:#e2d2c3;color:#8c5534}.post-item-title{font-size:.92rem;line-height:1.45;text-decoration:none;margin-bottom:.2rem}.post-item-meta{display:inline-flex;align-items:center;font-size:.72rem;border-radius:999px;border:1px solid var(--border);background:#f6f5f2;padding:.2rem .55rem;color:var(--muted);white-space:nowrap;margin-top:.08rem}.post-item-desc{color:var(--muted);font-size:.8rem;margin-top:.12rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.posts-divider{border:0;border-top:1px dashed #d5d3ce;margin:1.4rem 0 1.6rem}.post-item-placeholder{border-left:1px solid var(--accent);background:#f6f5f2;transform:none}.post-item-placeholder:hover{background:#f6f5f2;border-left-color:var(--accent);transform:none}.post-item-placeholder .post-item-title{color:var(--muted);font-size:.86rem}.post-item-placeholder .post-item-desc{color:#8b9097;white-space:normal}.linkedin-note{color:var(--muted);font-size:.78rem;margin-top:.7rem}.projects-bento{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:1rem}.projects-section-label{grid-column:1/-1;font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);padding-bottom:.5rem;border-bottom:1px solid var(--border);margin-top:2rem;margin-bottom:.5rem}.projects-bento>.projects-section-label:first-child{margin-top:.4rem}.project-card{border:1px solid var(--border);border-radius:8px;background:var(--bg);transition:all .2s ease}.project-card:hover{border-color:#c5c5bf;box-shadow:0 4px 20px rgba(0,0,0,.06)}.project-card-anchor{grid-column:1/-1;padding:1.5rem}.project-card-regular{padding:1.2rem}.project-card-header{display:flex;align-items:baseline;gap:.55rem;margin-bottom:.55rem;flex-wrap:wrap}.project-card-anchor .project-name{font-family:"Instrument Serif",Georgia,serif;font-size:1.3rem;font-weight:400;line-height:1.1}.project-card-regular .project-name{font-family:"Instrument Serif",Georgia,serif;font-size:1rem;font-weight:400;line-height:1.1}.project-tag{font-size:.68rem;padding:.1em .5em;border-radius:2px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.tag-live{background:#dcfce7;color:#166534}.tag-open-source{background:#dbeafe;color:#1e40af}.tag-hackathon{background:#f3e8ff;color:#6b21a8}.tag-in-progress{background:#fef9c3;color:#854d0e}.tag-stage-demo{background:#ffedd5;color:#9a3412}.project-desc{color:var(--muted);font-size:.85rem;line-height:1.55;margin-bottom:.65rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-stack-pills{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}.stack-pill{background:#efefeb;color:var(--muted);font-size:.7rem;padding:.15em .5em;border-radius:3px}.project-card-regular .stack-pill.is-extra{display:none}.project-links{display:flex;gap:.9rem;align-items:center}.project-links a{font-size:.78rem;color:var(--muted);text-decoration:none;transition:color .15s}.project-links a:hover{color:var(--text)}@media (max-width: 600px){.projects-bento{grid-template-columns:1fr}.project-card-anchor,.project-card-regular{grid-column:1/-1}}.about-section{margin-bottom:2rem}.filmstrip{position:relative;max-width:480px;margin:1.5rem 0 2rem}.fs-viewport{overflow:hidden;border-radius:8px;box-shadow:0 4px 24px rgba(0,0,0,.1);max-height:280px}.fs-track{display:flex;transition:transform .45s cubic-bezier(.4, 0, .2, 1);will-change:transform}.fs-slide{min-width:100%;flex-shrink:0}.fs-slide img{width:100%;height:280px;object-fit:cover;object-position:center center;display:block}.fs-btn{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.85);border:none;border-radius:50%;width:36px;height:36px;font-size:1.3rem;color:var(--text);cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.12);transition:all .2s ease;backdrop-filter:blur(4px)}.fs-btn:hover{background:#fff;box-shadow:0 4px 16px rgba(0,0,0,.16);transform:translateY(-50%) scale(1.05)}.fs-prev{left:.75rem}.fs-next{right:.75rem}.fs-dots{display:flex;justify-content:center;gap:6px;margin-top:.85rem}.fs-dot{width:6px;height:6px;border-radius:50%;border:none;background:var(--border);cursor:pointer;padding:0;transition:all .25s ease}.fs-dot.active{background:var(--accent);width:18px;border-radius:3px}.gh-graph{margin:1rem 0 .5rem;max-width:100%;overflow:hidden;border-radius:6px;border:1px solid var(--border);padding:.75rem;background:var(--bg)}.gh-snake{width:100%;height:auto;display:block}.home-graph{margin:2rem auto;max-width:760px;width:min(760px,100vw - 3rem);padding:1.25rem 1.5rem;border-radius:12px;border:none;background:rgba(0,0,0,0);box-shadow:none;outline:none;position:relative;left:50%;transform:translateX(calc(-50% + var(--sidebar-w)/2))}.home-graph .gh-snake{width:100%;height:auto;display:block}.gh-link{font-size:.78rem;color:var(--muted);margin-top:.5rem}.home-intro .gh-link{text-align:center;display:block;margin-top:.75rem;font-size:.78rem}.gh-link a{color:var(--muted);text-decoration:none;border-bottom:1px solid var(--border);padding-bottom:1px;transition:color .15s,border-color .15s}.gh-link a:hover{color:var(--text);border-color:var(--text)}.contact-list{list-style:none;padding:0}.contact-list li{padding:.2rem 0;font-size:.85rem;color:var(--muted)}.contact-list a{color:var(--text)}.resume-link{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text);text-decoration:none;border:1px solid var(--border);padding:.5rem 1rem;border-radius:3px;transition:border-color .15s,background .15s;margin-top:.5rem}.resume-link:hover{background:var(--text);color:var(--bg);border-color:var(--text)}.back-to-top{display:block;text-align:right;color:var(--muted);font-size:.78rem;text-decoration:none;margin-top:4rem;opacity:0;pointer-events:none;transition:opacity .3s ease}.back-to-top.is-visible{opacity:1;pointer-events:auto}.back-to-top:hover{color:var(--text)}hr{border:none;border-top:none;margin:2rem 0}@media (max-width: 768px){.main{padding:2rem 1.5rem}}@media (max-width: 480px){body{grid-template-columns:1fr}.sidebar{position:relative;width:100%;height:auto;overflow-y:visible;padding:1rem 1.5rem;flex-direction:row;align-items:center;flex-wrap:wrap;gap:1rem}.sidebar nav{flex-direction:row;gap:1rem}.sidebar-location{display:none}.sidebar-social{margin-top:0}.main{grid-column:1;padding:1.5rem;max-width:100%}.home-graph{width:100%;max-width:100%;left:0;transform:none}}