:root{--bg-color:#0c0704;--text-color:#c4b096;--highlight-color:#e6cba8;--accent-color:#783d11;--brown-light:#7a6a5d;--brown-medium:#5c4839;--brown-dark:#453429;--brown-darker:#2b2018;--brown-darkest:#160f0a;--font-header:"Press Start 2P", cursive;--font-body:"VT323", monospace}[data-theme=light]{--bg-color:#f0e6d2;--text-color:#4a3b32;--highlight-color:#2c241b;--accent-color:#a65d24;--brown-light:#8c7666;--brown-medium:#a89282;--brown-dark:#c4b096;--brown-darker:#d6c2aa;--brown-darkest:#e6d5c0}*{box-sizing:border-box;margin:0;padding:0;transition:background-color .3s,color .3s}body{background-color:var(--bg-color);color:var(--text-color);font-family:var(--font-body);flex-direction:column;justify-content:flex-start;align-items:center;min-height:100vh;display:flex}::selection{background:var(--accent-color);color:#fff}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}.pixel-art{image-rendering:pixelated;shape-rendering:crispedges}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.theme-toggle{z-index:100;color:var(--text-color);border-radius:50%;justify-content:center;align-items:center;padding:.5rem;transition:transform .2s,color .2s;display:flex;position:fixed;top:1.5rem;right:1.5rem}.theme-toggle:hover{color:var(--highlight-color);transform:scale(1.1)}.sun-icon,.moon-icon{width:1.5rem;height:1.5rem}.sun-icon{display:none}.moon-icon,[data-theme=light] .sun-icon{display:block}[data-theme=light] .moon-icon{display:none}main{opacity:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2.5rem;width:100%;max-width:900px;padding:1.5rem;animation:1s ease-out forwards fadeIn;display:flex}@media (width>=768px){main{flex-direction:row;align-items:center;gap:5rem}}.avatar-container{flex-shrink:0}.avatar-box{aspect-ratio:1;background-color:var(--brown-darkest);border-radius:1rem;justify-content:center;align-items:center;width:14rem;display:flex;position:relative;overflow:hidden}@media (width>=768px){.avatar-box{width:16rem}}.avatar-svg{object-fit:contain;width:8rem;height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.avatar-img{object-fit:cover;object-position:top center;width:100%;height:100%;display:block}.content-area{text-align:left;flex:1}h1{font-family:var(--font-header);color:var(--highlight-color);margin-bottom:1rem;font-size:1.5rem;line-height:1.6}@media (width>=768px){h1{font-size:1.875rem}}h2{color:var(--accent-color);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.5rem;font-size:1.25rem;font-weight:500}@media (width>=768px){h2{font-size:1.5rem}}.bio{max-width:28rem;margin-bottom:2rem;font-size:1.25rem;line-height:1.6}@media (width>=768px){.bio{font-size:1.5rem}}ul{color:var(--brown-light);margin-bottom:2.5rem;font-size:1.125rem;list-style:none}@media (width>=768px){ul{font-size:1.25rem}}li{align-items:baseline;margin-bottom:.5rem;padding-left:.25rem;display:flex}.bullet{color:var(--brown-dark);margin-right:.75rem;padding-top:.25rem}.contact-text{color:var(--brown-medium);margin-bottom:2rem;font-size:1.125rem}.email-link{color:var(--highlight-color);font-size:1.3rem;transition:color .2s}.email-link:hover{color:#fff}.resume-btn{text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--accent-color);color:var(--accent-color);padding:.5rem 1.25rem;font-size:1.25rem;transition:all .2s}.resume-btn:hover{background-color:var(--accent-color);color:var(--highlight-color)}footer{text-align:center;width:100%;margin-top:auto;padding:2rem}.social-row{opacity:.6;justify-content:center;gap:2rem;margin-bottom:1.5rem;transition:opacity .2s;display:flex}.social-row:hover{opacity:1}.icon-svg{width:1.5rem;height:1.5rem;color:var(--brown-light);transition:color .2s}.icon-svg:hover{color:var(--highlight-color)}.copyright{color:var(--brown-darker);letter-spacing:.1em;justify-content:center;align-items:center;gap:.5rem;font-size:1.125rem;display:flex}.pixel-heart{color:#d32f2f;width:1.25rem;height:1.25rem;animation:1.5s infinite heartbeat}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.page{opacity:0;flex:1;width:100%;max-width:760px;padding:4.5rem 1.5rem 2rem;animation:.8s ease-out forwards fadeIn}.nav-link{font-family:var(--font-header);color:var(--accent-color);letter-spacing:.05em;align-items:center;gap:.5rem;font-size:.7rem;transition:color .2s;display:inline-flex}.nav-link:hover{color:var(--highlight-color)}.page-title{font-family:var(--font-header);color:var(--highlight-color);margin:2rem 0 .5rem;font-size:1.25rem;line-height:1.6}.page-subtitle{color:var(--brown-light);margin-bottom:2.5rem;font-size:1.25rem}.post-list{margin:0;padding:0;list-style:none}.post-list-item{border-bottom:1px solid var(--brown-darker);padding:1.25rem 0;transition:padding-left .2s;display:block}.post-list-item:hover{padding-left:.5rem}.post-list-item a{display:block}.post-list-title{font-family:var(--font-header);color:var(--highlight-color);margin-bottom:.6rem;font-size:.85rem;line-height:1.7;transition:color .2s}.post-list-item:hover .post-list-title{color:var(--accent-color)}.post-list-desc{color:var(--text-color);margin-bottom:.4rem;font-size:1.15rem;line-height:1.5}.post-meta{color:var(--brown-medium);letter-spacing:.05em;flex-wrap:wrap;align-items:center;gap:.75rem;font-size:1rem;display:flex}.tag{font-family:var(--font-header);text-transform:uppercase;color:var(--accent-color);border:1px solid var(--brown-dark);border-radius:.25rem;padding:.25rem .45rem;font-size:.55rem}.empty-state{color:var(--brown-medium);padding:2rem 0;font-size:1.25rem}.article-header{margin-bottom:2.5rem}.article-title{font-family:var(--font-header);color:var(--highlight-color);margin:1.5rem 0 1rem;font-size:1.15rem;line-height:1.8}.article-hero{border-radius:.75rem;width:100%;margin:1.5rem 0;display:block}.prose{color:var(--text-color);font-size:1.35rem;line-height:1.75}.prose>*+*{margin-top:1.4rem}.prose h2{font-family:var(--font-header);color:var(--highlight-color);text-transform:none;letter-spacing:0;margin-top:2.5rem;margin-bottom:.5rem;font-size:.95rem;line-height:1.7}.prose h3{font-family:var(--font-header);color:var(--accent-color);margin-top:2rem;margin-bottom:.5rem;font-size:.75rem;line-height:1.7}.prose a{color:var(--highlight-color);text-decoration:underline;text-decoration-color:var(--accent-color);text-underline-offset:3px;transition:color .2s}.prose a:hover{color:var(--accent-color)}.prose ul,.prose ol{list-style:revert;color:var(--text-color);font-size:inherit;margin-bottom:0;padding-left:1.5rem}.prose li{margin-bottom:.4rem;padding-left:0;display:list-item}.prose strong{color:var(--highlight-color)}.prose blockquote{border-left:3px solid var(--accent-color);color:var(--brown-light);padding-left:1.2rem;font-style:italic}.prose code{font-family:var(--font-body);background-color:var(--brown-darkest);color:var(--highlight-color);border-radius:.25rem;padding:.1rem .4rem;font-size:1.15rem}.prose pre{background-color:var(--brown-darkest);border:1px solid var(--brown-darker);border-radius:.5rem;padding:1.1rem 1.25rem;font-size:1rem;line-height:1.5;overflow-x:auto}.prose pre code{background:0 0;padding:0;font-size:1rem}.prose pre.astro-code,.prose pre.astro-code span{color:var(--shiki-dark);font-style:var(--shiki-dark-font-style);font-weight:var(--shiki-dark-font-weight);text-decoration:var(--shiki-dark-text-decoration)}[data-theme=light] .prose pre.astro-code,[data-theme=light] .prose pre.astro-code span{color:var(--shiki-light);font-style:var(--shiki-light-font-style);font-weight:var(--shiki-light-font-weight);text-decoration:var(--shiki-light-text-decoration)}.prose img{border-radius:.5rem;max-width:100%;height:auto;display:block}.prose img:not(.link-card-thumb){margin-inline:auto}.prose .tenor-gif-embed{justify-content:center;display:flex}.prose .giphy-embed,.prose .video-embed,.prose .twitter-tweet,.prose twitter-widget{margin-inline:auto!important}.prose twitter-widget{display:block}.prose .video-embed{aspect-ratio:16/9;background-color:var(--brown-darkest);border-radius:.5rem;max-width:100%;margin:1.6rem auto;position:relative;overflow:hidden}.prose .video-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.prose figure.post-figure{margin:1.6rem 0}.prose figure.post-figure img{margin-inline:auto}.prose figure.post-figure figcaption{text-align:center;color:var(--brown-medium);margin-top:.6rem;font-size:.9rem;font-style:italic}.prose .link-card{border:1px solid var(--brown-darker);background-color:var(--brown-darkest);border-radius:.5rem;align-items:center;gap:0;text-decoration:none;transition:border-color .2s,transform .2s;display:flex;overflow:hidden}.prose .link-card:hover{border-color:var(--accent-color);transform:translateY(-2px)}.prose .link-card-thumb{aspect-ratio:1;object-fit:cover;background-color:var(--brown-darker);border-radius:.4rem;flex-shrink:0;align-self:center;width:6.5rem;margin:.75rem 0 .75rem .75rem}.prose .link-card-body{flex-direction:column;justify-content:center;gap:.3rem;min-width:0;padding:.9rem 1.1rem;display:flex}.prose .link-card-title{color:var(--highlight-color);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:1.2rem;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.prose .link-card-desc{color:var(--brown-light);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-size:1.05rem;line-height:1.4;display:-webkit-box;overflow:hidden}.prose .link-card-host{color:var(--brown-medium);text-transform:uppercase;letter-spacing:.05em;font-size:.9rem}.prose .link-card--wide{flex-direction:column;align-items:stretch}.prose .link-card--wide .link-card-thumb{aspect-ratio:auto;border-radius:0;align-self:stretch;width:100%;height:auto;max-height:15rem;margin:0}.prose .link-card:not(:has(.link-card-thumb)){border-left:3px solid var(--accent-color)}.prose .link-card:not(:has(.link-card-thumb)) .link-card-body{padding:.75rem 1rem}@media (width<=520px){.prose .link-card:not(.link-card--wide) .link-card-thumb{width:5rem}.prose .link-card-title{font-size:1.1rem}}.prose hr{border:none;border-top:1px solid var(--brown-darker);margin:2.5rem 0}.prose table{border-collapse:collapse;width:100%;font-size:1.15rem}.prose th,.prose td{border:1px solid var(--brown-darker);text-align:left;padding:.6rem .8rem}.prose th{color:var(--highlight-color);background-color:var(--brown-darkest)}
