@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg-primary:#1e1e1e;--bg-secondary:#252526;--bg-tertiary:#2d2d2d;--bg-hover:#2a2d2e;--border:#3c3c3c;--text-primary:#ccc;--text-secondary:#9d9d9d;--text-muted:#6a9955;--accent:#007acc;--accent-hover:#1a8ad4;--status-green:#4ec9b0;--dot-red:#ff5f57;--dot-yellow:#febc2e;--dot-green:#28c840;--tok-keyword:#569cd6;--tok-string:#ce9178;--tok-function:#dcdcaa;--tok-property:#9cdcfe;--tok-comment:#6a9955;--tok-bool:#569cd6;--tok-punct:#d4d4d4;--font-sans:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--top-bar-height:40px;--nav-height:48px;--status-bar-height:24px;--max-width:1100px;--section-gap:3rem;--scroll-offset:calc(var(--top-bar-height) + var(--nav-height) + env(safe-area-inset-top,0px) + 16px);--ease-out:cubic-bezier(.22, 1, .36, 1);--duration-fast:.2s;--duration-normal:.45s;--duration-slow:.6s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--scroll-offset)}[id]{scroll-margin-top:var(--scroll-offset)}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-hover)}.app{min-height:100dvh;padding-top:calc(var(--top-bar-height) + var(--nav-height) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--status-bar-height) + env(safe-area-inset-bottom,0px));flex-direction:column;display:flex}button{font:inherit;cursor:pointer;background:0 0;border:none}.main{width:100%;max-width:var(--max-width);padding:0 max(1.5rem, env(safe-area-inset-left,0px)) 4rem;padding-right:max(1.5rem, env(safe-area-inset-right,0px));flex:1;margin:0 auto}.top-bar{height:calc(var(--top-bar-height) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);background:var(--bg-secondary);border-bottom:1px solid var(--border);padding-left:max(1rem, env(safe-area-inset-left,0px));padding-right:max(1rem, env(safe-area-inset-right,0px));z-index:300;justify-content:space-between;align-items:center;font-size:.8rem;display:flex;position:fixed;top:0;left:0;right:0}.top-bar__left{align-items:center;gap:.5rem;display:flex}.top-bar__dot{border-radius:50%;width:12px;height:12px}.top-bar__dot--red{background:var(--dot-red)}.top-bar__dot--yellow{background:var(--dot-yellow)}.top-bar__dot--green{background:var(--dot-green)}.top-bar__title{color:var(--text-secondary);font-family:var(--font-mono);margin-left:.5rem;font-size:.75rem}.top-bar__title:hover{color:var(--accent)}.top-bar__right{color:var(--text-secondary);align-items:center;gap:1rem;font-size:.75rem;display:flex}.top-bar__status{color:var(--status-green);align-items:center;gap:.4rem;display:flex}.top-bar__status-dot{background:var(--status-green);border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes gentleBounce{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@keyframes blink{50%{opacity:0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes tabIndicator{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.status-bar{height:calc(var(--status-bar-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--accent);color:#fff;padding-left:max(.75rem, env(safe-area-inset-left,0px));padding-right:max(.75rem, env(safe-area-inset-right,0px));font-family:var(--font-mono);z-index:300;justify-content:space-between;align-items:center;font-size:.7rem;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden}.status-bar__left,.status-bar__right{white-space:nowrap;gap:1rem;min-width:0;display:flex}.status-bar__left span,.status-bar__right span{text-overflow:ellipsis;overflow:hidden}.nav-shell{top:calc(var(--top-bar-height) + env(safe-area-inset-top,0px));height:var(--nav-height);border-bottom:1px solid var(--border);z-index:250;background:#1e1e1ef5;position:fixed;left:0;right:0;overflow:visible}.nav-shell__inner{max-width:var(--max-width);align-items:center;height:100%;margin:0 auto;padding:0 1.5rem;display:flex;position:relative;overflow:visible}body.nav-menu-open .nav-shell{z-index:280}.nav-bar,.nav__toggle,.nav__backdrop{display:none}.nav{flex-wrap:wrap;gap:.35rem;width:100%;display:flex}.nav__link{font-family:var(--font-mono);color:var(--text-secondary);transition:color var(--duration-fast) ease, background var(--duration-fast) ease, border-color var(--duration-fast) ease, transform var(--duration-fast) var(--ease-out);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:4px;padding:.45rem .75rem;font-size:.8rem}.nav__link:hover,.nav__link:focus-visible{color:var(--text-primary);background:var(--bg-hover);outline:none}.nav__link--active{color:var(--accent);background:#007acc1f;border-color:#007acc59}.hero{padding:2.5rem 0 4rem}.hero__layout{grid-template-columns:1.1fr .9fr;align-items:start;gap:2.5rem;display:grid}.hero__eyebrow{font-family:var(--font-mono);color:var(--accent);animation:fadeUp var(--duration-slow) var(--ease-out) .1s backwards;margin-bottom:1rem;font-size:.85rem}.hero__headline{min-height:3.2rem;animation:fadeUp var(--duration-slow) var(--ease-out) .2s backwards;margin-bottom:1rem;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;line-height:1.2}.hero__cursor{color:var(--accent);animation:1s step-end infinite blink}.hero__tagline{color:var(--text-secondary);max-width:32rem;animation:fadeUp var(--duration-slow) var(--ease-out) .35s backwards;margin-bottom:2rem;font-size:1rem}.hero__scroll{font-family:var(--font-mono);color:var(--text-secondary);border:1px solid var(--border);background:var(--bg-secondary);transition:color var(--duration-fast) ease, border-color var(--duration-fast) ease, background var(--duration-fast) ease, transform var(--duration-fast) var(--ease-out);animation:fadeUp var(--duration-slow) var(--ease-out) .45s backwards, gentleBounce 2.5s ease-in-out 1.5s infinite;border-radius:4px;padding:.5rem .9rem;font-size:.85rem}.hero__code-card{animation:fadeUp .7s var(--ease-out) .25s backwards}.hero__scroll:hover,.hero__scroll:focus-visible{color:var(--accent);border-color:var(--accent);background:#007acc14;outline:none;animation:none;transform:translateY(-1px)}.code-block{background:var(--bg-secondary);border:1px solid var(--border);transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;border-radius:6px;overflow:hidden}.code-block:hover{border-color:#007acc4d;box-shadow:0 4px 24px #0003}.code-block__header{background:var(--bg-tertiary);font-family:var(--font-mono);color:var(--text-secondary);border-bottom:1px solid var(--border);padding:.5rem 1rem;font-size:.75rem}.code-block__body{font-family:var(--font-mono);white-space:pre;padding:1.25rem;font-size:.8rem;line-height:1.7;overflow-x:auto}.tok-keyword{color:var(--tok-keyword)}.tok-string{color:var(--tok-string)}.tok-function{color:var(--tok-function)}.tok-property{color:var(--tok-property)}.tok-comment{color:var(--tok-comment)}.tok-bool{color:var(--tok-bool)}.tok-punct{color:var(--tok-punct)}.file-panel{margin-bottom:var(--section-gap);background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;overflow:hidden}.file-panel__tab{background:var(--bg-tertiary);border-bottom:1px solid var(--border);font-family:var(--font-mono);color:var(--text-secondary);align-items:center;gap:.5rem;min-width:0;padding:.5rem 1rem;font-size:.75rem;display:flex}.file-panel__tab-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-panel__tab-icon{color:var(--accent);font-size:.65rem}.file-panel__content{padding:1.5rem}.file-panel__title{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.5rem;font-weight:600}.reveal{opacity:0;transition:opacity .55s var(--ease-out), transform .55s var(--ease-out);pointer-events:none;transform:translateY(16px)}.reveal.revealed{opacity:1;pointer-events:auto;transform:translateY(0)}.reveal.revealed .file-panel__title{animation:fadeUp var(--duration-normal) var(--ease-out) 80ms backwards}.reveal.revealed .about__paragraph{animation:fadeUp var(--duration-normal) var(--ease-out) backwards}.reveal.revealed .about__paragraph:first-child{animation-delay:.1s}.reveal.revealed .about__paragraph:nth-child(2){animation-delay:.18s}.reveal.revealed .about__paragraph:nth-child(3){animation-delay:.26s}.reveal.revealed .experience__bullet{animation:fadeUp .4s var(--ease-out) backwards}.reveal.revealed .experience__bullet:first-child{animation-delay:80ms}.reveal.revealed .experience__bullet:nth-child(2){animation-delay:.14s}.reveal.revealed .experience__bullet:nth-child(3){animation-delay:.2s}.reveal.revealed .experience__bullet:nth-child(4){animation-delay:.26s}.reveal.revealed .experience__bullet:nth-child(5){animation-delay:.32s}.reveal.revealed .experience__bullet:nth-child(6){animation-delay:.38s}.reveal.revealed .projects__item{animation:fadeUp var(--duration-normal) var(--ease-out) backwards}.reveal.revealed .projects__item:first-child{animation-delay:.1s}.reveal.revealed .projects__item:nth-child(2){animation-delay:.2s}.reveal.revealed .blog__item{animation:fadeUp var(--duration-normal) var(--ease-out) backwards}.reveal.revealed .blog__item:first-child{animation-delay:.1s}.reveal.revealed .blog__item:nth-child(2){animation-delay:.18s}.reveal.revealed .blog__item:nth-child(3){animation-delay:.26s}.reveal.revealed .education__item{animation:fadeUp .4s var(--ease-out) backwards}.reveal.revealed .education__item:first-of-type{animation-delay:80ms}.reveal.revealed .education__item:nth-of-type(2){animation-delay:.16s}.reveal.revealed .education__cert{animation:fadeUp .4s var(--ease-out) .1s backwards}.about__paragraph{color:var(--text-secondary);margin-bottom:1rem;padding-left:2.5rem;font-size:.95rem;position:relative}.about__line-num{font-family:var(--font-mono);color:var(--tok-comment);font-size:.75rem;position:absolute;left:0}.skills__tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.25rem;margin-bottom:1.25rem;padding-bottom:.5rem;display:flex}.skills__tab{font-family:var(--font-mono);color:var(--text-secondary);cursor:pointer;z-index:1;transition:background var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease, transform var(--duration-fast) var(--ease-out);background:0 0;border:1px solid #0000;border-radius:4px;padding:.5rem .85rem;font-size:.75rem;position:relative}.skills__tab:active{transform:scale(.97)}.skills__tab:hover,.skills__tab:focus-visible{background:var(--bg-hover);color:var(--text-primary);outline:none}.skills__tab--active{background:var(--bg-tertiary);border-color:var(--border);color:var(--accent)}.skills__panel{animation:fadeIn .3s var(--ease-out)}.skills__panel-label{font-family:var(--font-mono);color:var(--tok-comment);margin-bottom:.75rem;font-size:.8rem}.skills__list{flex-wrap:wrap;gap:.25rem 0;list-style:none;display:flex}.skills__item{font-family:var(--font-mono);animation:fadeUp .35s var(--ease-out) backwards;font-size:.85rem}.skills__item:first-child{animation-delay:40ms}.skills__item:nth-child(2){animation-delay:80ms}.skills__item:nth-child(3){animation-delay:.12s}.skills__item:nth-child(4){animation-delay:.16s}.skills__item:nth-child(5){animation-delay:.2s}.skills__item:nth-child(6){animation-delay:.24s}.skills__item:nth-child(7){animation-delay:.28s}.skills__item:nth-child(8){animation-delay:.32s}.skills__item:nth-child(9){animation-delay:.36s}.skills__comma{color:var(--text-secondary);margin-right:.5rem}.experience__item{border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding-bottom:1.5rem}.experience__item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.experience__meta{font-family:var(--font-mono);color:var(--tok-comment);overflow-wrap:anywhere;word-break:break-word;margin-bottom:.5rem;font-size:.7rem}.experience__role{margin-bottom:.25rem;font-size:1.15rem;font-weight:600}.experience__period{font-family:var(--font-mono);color:var(--accent);margin-bottom:.25rem;font-size:.8rem}.experience__company{color:var(--text-secondary);margin-bottom:1rem;font-size:.9rem}.experience__list{list-style:none}.experience__bullet{color:var(--text-secondary);margin-bottom:.5rem;padding-left:1.25rem;font-size:.9rem;position:relative}.experience__arrow{color:var(--accent);position:absolute;left:0}.projects__item{background:var(--bg-primary);border:1px solid var(--border);transition:transform var(--duration-fast) var(--ease-out), border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;border-radius:6px;margin-bottom:1.25rem;padding:1.25rem}.projects__item:hover{border-color:#007acc59;transform:translateY(-2px);box-shadow:0 6px 20px #00000038}.projects__item:last-child{margin-bottom:0}.projects__index{font-family:var(--font-mono);color:var(--tok-comment);margin-bottom:.5rem;font-size:.7rem}.projects__title{margin-bottom:.75rem;font-size:1.1rem;font-weight:600}.projects__description{color:var(--text-secondary);margin-bottom:.75rem;font-size:.9rem}.projects__field{font-family:var(--font-mono);overflow-wrap:anywhere;word-break:break-word;margin-bottom:.4rem;font-size:.8rem}.projects__link{font-family:var(--font-mono);transition:background var(--duration-fast) ease, border-color var(--duration-fast) ease, transform var(--duration-fast) var(--ease-out);background:#007acc14;border:1px solid #007acc66;border-radius:4px;margin-top:.75rem;padding:.45rem .85rem;font-size:.85rem;display:inline-block}.projects__link:hover,.projects__link:focus-visible{border-color:var(--accent);background:#007acc29;outline:none;transform:translate(2px)}.projects__title a{color:var(--text-primary)}.projects__title a:hover{color:var(--accent)}.blog__intro{font-family:var(--font-mono);margin-bottom:1.5rem;font-size:.85rem}.blog__item{background:var(--bg-primary);border:1px solid var(--border);transition:transform var(--duration-fast) var(--ease-out), border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;border-radius:6px;margin-bottom:1.25rem;padding:1.25rem}.blog__item:hover{border-color:#007acc59;transform:translateY(-2px);box-shadow:0 6px 20px #00000038}.blog__item:last-child{margin-bottom:0}.blog__index{font-family:var(--font-mono);color:var(--tok-comment);margin-bottom:.5rem;font-size:.7rem}.blog__title{margin-bottom:.5rem;font-size:1.1rem;font-weight:600}.blog__title a{color:var(--text-primary)}.blog__title a:hover{color:var(--accent)}.blog__meta{font-family:var(--font-mono);overflow-wrap:anywhere;margin-bottom:.75rem;font-size:.8rem}.blog__excerpt{color:var(--text-secondary);margin-bottom:.85rem;font-size:.9rem}.blog__tags{flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem;list-style:none;display:flex}.blog__tag{font-family:var(--font-mono);color:var(--status-green);background:#4ec9b014;border:1px solid #4ec9b059;border-radius:3px;padding:.2rem .5rem;font-size:.7rem}.blog__link{font-family:var(--font-mono);transition:background var(--duration-fast) ease, border-color var(--duration-fast) ease, transform var(--duration-fast) var(--ease-out);background:#007acc14;border:1px solid #007acc66;border-radius:4px;padding:.45rem .85rem;font-size:.85rem;display:inline-block}.blog__link:hover,.blog__link:focus-visible{border-color:var(--accent);background:#007acc29;outline:none;transform:translate(2px)}.blog-post__meta{font-family:var(--font-mono);margin-bottom:.85rem;font-size:.85rem}.blog-post__tags{margin-bottom:1.5rem}.blog-post__paragraph{color:var(--text-secondary);margin-bottom:1rem;padding-left:2.5rem;font-size:.95rem;line-height:1.7;position:relative}.blog-post__paragraph .about__line-num{position:absolute;top:0;left:0}.blog-post__back{margin-top:1.5rem}.blog-fallback{font-family:var(--font-mono);color:var(--tok-comment);padding:2rem 0}.blog-md{color:var(--text-secondary);font-size:.95rem;line-height:1.75}.blog-md>:first-child{margin-top:0}.blog-md h2{color:var(--text-primary);border-top:1px solid var(--border);scroll-margin-top:var(--scroll-offset);margin:2.25rem 0 .85rem;padding-top:.5rem;font-size:1.35rem;font-weight:600}.blog-md h2:first-of-type{border-top:none;padding-top:0}.blog-md h3{color:var(--text-primary);scroll-margin-top:var(--scroll-offset);margin:1.6rem 0 .65rem;font-size:1.1rem;font-weight:600}.blog-md p{margin-bottom:1rem}.blog-md ul,.blog-md ol{margin:0 0 1rem 1.25rem}.blog-md li{margin-bottom:.4rem}.blog-md li>ul,.blog-md li>ol{margin-top:.4rem;margin-bottom:.4rem}.blog-md blockquote{border-left:3px solid var(--accent);color:var(--text-primary);background:#007acc14;margin:1rem 0 1.25rem;padding:.75rem 1rem}.blog-md hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.blog-md a{color:var(--accent)}.blog-md strong{color:var(--text-primary);font-weight:600}.blog-md .blog-md__inline-code{font-family:var(--font-mono);color:var(--tok-string);background:var(--bg-primary);border:1px solid var(--border);border-radius:3px;padding:.1rem .35rem;font-size:.82em}.blog-md__pre{background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;margin:0 0 1.25rem;padding:1rem;overflow-x:auto}.blog-md__code{font-family:var(--font-mono);color:var(--tok-punct);white-space:pre;font-size:.8rem;line-height:1.6}.blog-md__mermaid{background:var(--bg-primary);border:1px solid var(--border);text-align:center;border-radius:6px;margin:0 0 1.25rem;padding:1rem;overflow-x:auto}.blog-md__mermaid svg{max-width:100%;height:auto}.blog-md table{border-collapse:collapse;width:100%;margin:0 0 1.25rem;font-size:.88rem;display:block;overflow-x:auto}.blog-md th,.blog-md td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:.6rem .75rem}.blog-md th{background:var(--bg-tertiary);color:var(--text-primary);font-family:var(--font-mono);font-size:.78rem;font-weight:500}.blog-md__screenshot{margin:0 0 1.5rem}.blog-md__screenshot-frame{text-align:center;min-height:160px;color:var(--text-secondary);background:#007acc0f;border:1px dashed #007acc73;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.5rem;display:flex}.blog-md__screenshot-label{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.blog-md__screenshot-caption{font-family:var(--font-mono);color:var(--tok-comment);text-align:center;margin-top:.5rem;font-size:.75rem}.blog-md__image{border:1px solid var(--border);border-radius:6px;max-width:100%}.education__subtitle{font-family:var(--font-mono);color:var(--tok-comment);margin:1.5rem 0 1rem;font-size:.85rem}.education__subtitle:first-child{margin-top:0}.education__item{border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:1.25rem}.education__degree{font-family:var(--font-mono);color:var(--tok-string);margin-bottom:.25rem;font-size:.95rem}.education__institution{color:var(--text-secondary);font-size:.9rem}.education__location{color:var(--text-secondary);margin-top:.15rem;font-size:.85rem}.education__certs{list-style:none}.education__cert{font-family:var(--font-mono);color:var(--text-secondary);margin-bottom:.5rem;font-size:.85rem}.education__check{color:var(--status-green);margin-right:.5rem}.contact__terminal{background:var(--bg-primary);border:1px solid var(--border);font-family:var(--font-mono);border-radius:6px;padding:1.25rem;font-size:.85rem}.contact__prompt{margin-bottom:.5rem}.contact__user{color:var(--status-green)}.contact__colon,.contact__path{color:var(--accent)}.contact__dollar{color:var(--text-primary);margin:0 .25rem}.contact__comment{color:var(--tok-comment);margin-bottom:.75rem}.contact__line{margin-bottom:.4rem}.contact__link{color:var(--tok-string);text-underline-offset:3px;word-break:break-all;transition:color var(--duration-fast) ease;text-decoration:underline}.contact__link:hover,.contact__link:focus-visible{color:var(--accent-hover);outline:none}.contact__cursor{animation:1s step-end infinite blink}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;pointer-events:auto;transform:none}.projects__item:hover,.blog__item:hover{transform:none}}body.nav-menu-open{overflow:hidden}@media (width<=1024px){.hero__layout{grid-template-columns:1fr;gap:2rem}.hero__code-card{max-width:100%}.file-panel__title{font-size:1.35rem}}@media (width<=768px){:root{--section-gap:2rem}.top-bar__title,.top-bar__meta{display:none}.top-bar__status{white-space:nowrap;font-size:.68rem}.nav-shell__inner{justify-content:flex-end;padding:0 1rem}.nav-bar{z-index:2;justify-content:space-between;align-items:center;gap:.75rem;width:100%;display:flex;position:relative}.nav-bar__current{font-family:var(--font-mono);color:var(--accent);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.8rem;overflow:hidden}.nav__toggle{width:44px;height:44px;transition:background var(--duration-fast) ease;z-index:3;border-radius:4px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex;position:relative}.nav__toggle:hover,.nav__toggle:focus-visible{background:var(--bg-hover);outline:none}.nav__toggle-bar{background:var(--text-primary);width:20px;height:2px;transition:transform var(--duration-fast) var(--ease-out), opacity var(--duration-fast) ease;border-radius:1px;display:block}.nav__toggle--open .nav__toggle-bar:first-child{transform:translateY(7px)rotate(45deg)}.nav__toggle--open .nav__toggle-bar:nth-child(2){opacity:0}.nav__toggle--open .nav__toggle-bar:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.nav__backdrop{top:calc(var(--top-bar-height) + var(--nav-height) + env(safe-area-inset-top,0px));z-index:1;cursor:pointer;background:#0000008c;border:none;animation:.2s fadeIn;display:block;position:fixed;bottom:0;left:0;right:0}.nav{top:calc(var(--top-bar-height) + var(--nav-height) + env(safe-area-inset-top,0px));left:0;right:0;bottom:calc(var(--status-bar-height) + env(safe-area-inset-bottom,0px));width:100%;max-width:none;padding:.75rem 1rem;padding-bottom:max(.75rem, env(safe-area-inset-bottom,0px));background:var(--bg-secondary);border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch;z-index:2;opacity:0;visibility:hidden;pointer-events:none;transition:transform var(--duration-fast) var(--ease-out), opacity var(--duration-fast) ease, visibility var(--duration-fast) ease;flex-flow:column;align-items:stretch;gap:.25rem;margin:0;position:fixed;overflow:hidden auto;transform:translateY(-6px);box-shadow:0 12px 32px #00000073}.nav--open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.nav__link{border-radius:6px;align-items:center;width:100%;min-height:44px;padding:.85rem 1rem;font-size:.9rem;display:flex}.hero{padding:1.25rem 0 2.5rem}.hero__layout{gap:1.5rem}.hero__headline{overflow-wrap:anywhere;min-height:auto;font-size:clamp(1.35rem,6vw,1.85rem)}.hero__tagline{margin-bottom:1.5rem;font-size:.95rem}.hero__scroll{text-align:center;width:100%;min-height:44px}.code-block__body{-webkit-overflow-scrolling:touch;padding:1rem;font-size:.75rem}.file-panel__content{padding:1rem}.file-panel__title{overflow-wrap:anywhere;word-break:break-word;margin-bottom:1.25rem;font-size:1.2rem;line-height:1.35}.file-panel__tab{padding:.5rem .75rem}.about__paragraph{padding-left:2rem;font-size:.9rem}.skills__tabs{flex-direction:column;gap:.35rem}.skills__tab{text-align:left;align-items:center;width:100%;min-height:44px;display:flex}.projects__item{padding:1rem}.projects__link{text-align:center;justify-content:center;align-items:center;width:100%;min-height:44px;display:flex}.blog__item{padding:1rem}.blog__title{overflow-wrap:anywhere;word-break:break-word;font-size:1rem}.blog__meta{font-size:.72rem;line-height:1.5}.blog__link{text-align:center;justify-content:center;align-items:center;width:100%;min-height:44px;display:flex}.blog-post__paragraph{padding-left:0}.blog-post__paragraph .about__line-num{margin-bottom:.35rem;display:block;position:static}.blog-md{font-size:.9rem}.blog-md h2{overflow-wrap:anywhere;font-size:1.15rem}.blog-md h3{overflow-wrap:anywhere;font-size:1.02rem}.blog-md__pre,.blog-md__mermaid{max-width:100%;padding:.75rem}.blog-md table{font-size:.8rem}.contact__terminal{-webkit-overflow-scrolling:touch;padding:1rem;font-size:.8rem;overflow-x:auto}.status-bar__left span:nth-child(n+3),.status-bar__right span:first-child{display:none}}@media (width<=480px){.main{padding:0 .875rem 3rem}.nav-shell__inner{padding:0 .75rem}.top-bar__status{text-overflow:ellipsis;max-width:9rem;overflow:hidden}.hero__eyebrow{font-size:.78rem}.about__paragraph{padding-left:0}.about__line-num{margin-bottom:.25rem;display:block;position:static}.experience__role{font-size:1.05rem}.projects__title{font-size:1rem}.file-panel__title{font-size:1.1rem}.blog-md ul,.blog-md ol{margin-left:1rem}}
