*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--black: #000000;--prussian-blue: #14213d;--orange: #fca311;--alabaster: #e5e5e5;--white: #ffffff;--bg: #14213d;--text: #e5e5e5;--text-muted: #8893a7;--accent: #fca311;--link: #fca311;--link-hover: #ffffff;--divider: #243553;--prompt: #fca311;--selection-bg: #243553;font-family:Source Code Pro,Fira Code,Cascadia Code,monospace;line-height:1.7;font-weight:400;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=light]{--bg: #e5e5e5;--text: #14213d;--text-muted: #4a5568;--accent: #fca311;--link: #14213d;--link-hover: #000000;--divider: #c8c8c8;--prompt: #fca311;--selection-bg: #c8c8c8}::selection{background:var(--selection-bg)}body{display:flex;justify-content:center;align-items:flex-start;min-height:100vh;padding:2rem}a{color:var(--link);text-decoration:none;transition:color .2s ease}a:hover{color:var(--link-hover)}.portfolio{max-width:600px;width:100%;animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.prompt-line{color:var(--text-muted);font-size:.9rem;margin-bottom:1rem}.cursor-blink{display:inline-block;width:8px;height:1.1em;background:var(--accent);margin-left:4px;vertical-align:text-bottom;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.name{font-size:2.4rem;font-weight:700;color:var(--text);margin:.5rem 0 .4rem;line-height:1.2}.subtitle{font-size:.95rem;color:var(--text-muted);margin-bottom:1rem}.divider{border:none;border-top:1px solid var(--divider);margin:1.5rem 0}.section-prompt{color:var(--text-muted);font-size:.9rem;margin-bottom:.6rem}.section-prompt .dollar{color:var(--prompt)}.contact-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.5rem;font-size:.9rem}.contact-links .bracket{color:var(--text-muted)}.recent-list{list-style:none;font-size:.9rem}.recent-list li{padding:.15rem 0}.recent-list li:before{content:"- ";color:var(--text-muted)}.recent-list .company{color:var(--link);transition:color .2s ease}.recent-list .company:hover{color:var(--link-hover)}.blog-list{list-style:none;font-size:.9rem}.blog-list li{padding:.4rem 0;border-bottom:1px solid var(--divider)}.blog-list li:last-child{border-bottom:none}.blog-link{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;color:var(--link);text-decoration:none;transition:color .2s ease}.blog-link:hover{color:var(--link-hover)}.blog-title{font-weight:600}.blog-date{color:var(--text-muted);font-size:.8rem;flex-shrink:0}.blog-summary{color:var(--text-muted);font-size:.8rem;margin-top:.2rem;line-height:1.5}.project-terminal-output{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:.5rem;font-family:monospace}.terminal-project-entry{display:flex;flex-direction:column;gap:.2rem}.terminal-project-image{width:100%;border-radius:6px;border:1px solid var(--divider);margin-bottom:.4rem;transition:opacity .2s ease}.terminal-project-image:hover{opacity:.85}.terminal-project-header{display:flex;flex-wrap:wrap;gap:1rem;align-items:baseline;color:var(--text-muted);font-size:.85rem}.terminal-mode{color:var(--accent)}.terminal-project-title{color:var(--link);font-weight:400;text-decoration:none;font-size:.9rem;transition:color .2s ease}.terminal-project-title:hover{color:var(--link-hover);text-decoration:none}.terminal-project-details{display:flex;flex-direction:column;gap:.2rem;padding-left:0;margin-top:.2rem;font-size:.9rem}.terminal-line{display:block;line-height:1.5}.terminal-line.comment{color:var(--text-muted);font-style:italic}.terminal-line.tags{color:var(--text)}.prompt-char{color:var(--accent);margin-right:.5rem}.comment-char{color:var(--text-muted);opacity:.5;margin-right:.5rem}.theme-toggle{display:flex;gap:.6rem;font-size:.9rem}.theme-toggle .bracket{color:var(--text-muted)}.theme-btn{background:none;border:none;color:var(--link);cursor:pointer;font-family:inherit;font-size:inherit;padding:0;transition:color .2s ease}.theme-btn:hover{color:var(--link-hover)}.footer{margin-top:2.5rem;font-size:.8rem;color:var(--text-muted)}.back-link{display:inline-block;color:var(--accent);font-size:.9rem;margin-bottom:1.2rem;text-decoration:none;transition:color .2s ease}.back-link:hover{color:var(--link-hover)}.post-header{margin-bottom:1.5rem}.post-date{font-size:.8rem;color:var(--text-muted)}.post-content{font-size:.9rem;line-height:1.8}.post-content h1{font-size:1.8rem;font-weight:700;color:var(--text);margin:1.5rem 0 .8rem;line-height:1.3}.post-content h2{font-size:1.3rem;font-weight:600;color:var(--text);margin:1.5rem 0 .6rem;border-bottom:1px solid var(--divider);padding-bottom:.3rem}.post-content h3{font-size:1.1rem;font-weight:600;color:var(--text);margin:1.2rem 0 .4rem}.post-content p{margin:.8rem 0;color:var(--text)}.post-content ul,.post-content ol{margin:.6rem 0;padding-left:1.5rem}.post-content li{margin:.3rem 0;color:var(--text)}.post-content strong{color:var(--text);font-weight:600}.post-content a{color:var(--link);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s ease,color .2s ease}.post-content a:hover{color:var(--link-hover);border-bottom-color:var(--link-hover)}.post-content code{background:var(--selection-bg);padding:.15em .4em;border-radius:3px;font-size:.85em;color:var(--accent)}.post-content pre{background:var(--selection-bg);border:1px solid var(--divider);border-radius:6px;padding:1rem;overflow-x:auto;margin:1rem 0}.post-content pre code{background:none;padding:0;border-radius:0;font-size:.85rem;color:var(--text);line-height:1.6}.post-content blockquote{border-left:3px solid var(--accent);margin:1rem 0;padding:.5rem 1rem;color:var(--text-muted)}.post-content table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.85rem}.post-content th,.post-content td{border:1px solid var(--divider);padding:.5rem .8rem;text-align:left}.post-content th{background:var(--selection-bg);font-weight:600;color:var(--text)}.post-content td{color:var(--text)}.post-content hr{border:none;border-top:1px solid var(--divider);margin:1.5rem 0}.post-content img{max-width:100%;border-radius:6px}.view-all{margin-top:.6rem;font-size:.9rem}.view-all-link{color:var(--accent);text-decoration:none;transition:color .2s ease}.view-all-link:hover{color:var(--link-hover)}@media(max-width:480px){.name{font-size:1.8rem}.blog-link{flex-direction:column;gap:0}.terminal-project-header{gap:.5rem;font-size:.8rem}.terminal-project-details{padding-left:.5rem}.post-content h1{font-size:1.4rem}.post-content h2{font-size:1.1rem}}
