@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Inter-Variable.ttf)format("truetype")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/SpaceGrotesk-Variable.ttf)format("truetype")}:root{color-scheme:light;--color-bg:#efe6d4;--color-bg-alt:#e4d8bd;--color-surface:#f8f2e4;--color-text:#1b1814;--color-text-muted:#3f3931;--color-accent:var(--color-text);--color-accent-hover:var(--color-text);--color-border:#d8c9a3;--font-heading:"Space Grotesk", "Segoe UI", system-ui, sans-serif;--font-body:"Inter", "Segoe UI", system-ui, sans-serif;--content-width:780px;--layout-width:960px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-pill:999px}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-bg:#1c1712;--color-bg-alt:#241d16;--color-surface:#2a221a;--color-text:#eee3cd;--color-text-muted:#b8ac8f;--color-accent:var(--color-text);--color-accent-hover:var(--color-text);--color-border:#3d3225}}:root[data-theme=dark]{color-scheme:dark;--color-bg:#1c1712;--color-bg-alt:#241d16;--color-surface:#2a221a;--color-text:#eee3cd;--color-text-muted:#b8ac8f;--color-accent:var(--color-text);--color-accent-hover:var(--color-text);--color-border:#3d3225}:root[data-theme=light]{color-scheme:light}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}html,body{margin:0;padding:0}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);flex-direction:column;min-height:100vh;line-height:1.6;display:flex}main{flex:1}.skip-link{background-color:var(--color-text);color:var(--color-bg);left:var(--space-4);padding:var(--space-3) var(--space-4);top:var(--space-4);z-index:1;position:fixed;transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}a{color:var(--color-accent);text-underline-offset:.15em;font-weight:600;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:.08em}a:hover{color:var(--color-accent-hover);text-underline-offset:.15em;text-decoration-line:underline;text-decoration-style:solid;text-decoration-thickness:.15em}a:focus-visible,button:focus-visible{outline:3px solid var(--color-text);outline-offset:3px}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--color-accent);line-height:1.2}.container{max-width:var(--content-width);padding:0 var(--space-6);margin:0 auto}.site-header{background-color:var(--color-bg-alt);border-bottom:1px solid var(--color-border)}.site-header .container{max-width:var(--layout-width);padding-top:var(--space-5);padding-bottom:var(--space-5);justify-content:space-between;align-items:center;display:flex}.site-header nav ul{gap:var(--space-6);margin:0;padding:0;list-style:none;display:flex}.site-header nav a{color:var(--color-text);font-family:var(--font-heading);letter-spacing:.02em;align-items:center;min-width:44px;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}.site-header nav a:hover{text-underline-offset:.15em;text-decoration-line:underline;text-decoration-thickness:.15em}.site-header nav a.icon-link,.icon-button,.theme-toggle{justify-content:center;align-items:center;display:inline-flex}.site-header nav a.icon-link:hover{background-color:var(--color-surface);text-decoration:none}.icon-link svg,.icon-button svg,.theme-toggle svg{width:1.25rem;height:1.25rem}.theme-toggle [hidden]{display:none}.icon-button{appearance:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;min-width:44px;min-height:44px;padding:var(--space-2) var(--space-3);background:0 0}.icon-button:hover{background-color:var(--color-surface)}.search-dialog{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);margin:var(--space-8) auto;max-height:calc(100vh - var(--space-16));max-width:var(--content-width);width:calc(100% - var(--space-8));padding:0}.search-dialog::backdrop{background-color:#00000073}.search-dialog-content{max-height:calc(100vh - var(--space-16));padding:var(--space-6);flex-direction:column;display:flex;overflow:hidden}.search-dialog-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.search-dialog-header h2{margin:0}.search-form{gap:var(--space-2);display:grid}.search-form label{font-family:var(--font-heading);font-weight:600}.search-form input{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font:inherit;min-height:44px;padding:var(--space-2) var(--space-3);background-color:var(--color-surface);width:100%}.search-status{color:var(--color-text-muted);min-height:1.6em;margin:var(--space-4) 0}.search-results{max-height:50vh;overflow-y:auto}.search-dialog .search-status{margin:var(--space-4) 0}.theme-toggle{appearance:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;font-family:var(--font-heading);min-width:44px;min-height:44px;padding:var(--space-2) var(--space-3);background:0 0;font-weight:600}.theme-toggle:hover{background-color:var(--color-surface)}.logo{font-family:var(--font-heading);color:var(--color-text);font-size:1.25rem;font-weight:700;text-decoration:none}.logo:hover{color:var(--color-text);text-decoration:none}.site-footer{background-color:var(--color-bg-alt);border-top:1px solid var(--color-border);color:var(--color-text-muted);padding:var(--space-8) 0;margin-top:var(--space-16);font-size:.9rem}.site-footer .container{max-width:var(--layout-width)}.hero{max-width:var(--layout-width);padding:var(--space-16) var(--space-6) var(--space-12);margin:0 auto}.hero h1{margin-bottom:var(--space-3);font-size:2.75rem}.hero .tagline{color:var(--color-text-muted);max-width:640px;font-size:1.2rem}.section{max-width:var(--layout-width);padding:var(--space-8) var(--space-6);margin:0 auto}.section-title{margin-bottom:var(--space-6);font-size:1.5rem}.post-list{gap:var(--space-6);margin:0;padding:0;list-style:none;display:grid}.post-list-link{margin-top:var(--space-6)}.pagination{align-items:center;gap:var(--space-3);margin-top:var(--space-8);flex-wrap:wrap;justify-content:center;display:flex}.pagination ol{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.pagination a,.pagination span{border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:44px;min-height:44px;padding:var(--space-2) var(--space-3);justify-content:center;align-items:center;display:inline-flex}.pagination a{background-color:var(--color-surface);text-decoration:none}.pagination a:hover{text-decoration:underline}.pagination span[aria-current=page]{background-color:var(--color-text);color:var(--color-bg);font-weight:600}.post-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6)}.post-card h2{margin:0 0 var(--space-2);font-size:1.25rem}.post-card .post-date{color:var(--color-text-muted);margin-bottom:var(--space-2);font-size:.85rem}.post-card p{margin:0 0 var(--space-3);color:var(--color-text-muted)}.featured-post-card{padding:0;overflow:hidden}.featured-post-card article{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:19rem;display:grid}.featured-post-image-link{background-color:var(--color-bg-alt);min-height:100%;text-decoration:none;display:block;overflow:hidden}.featured-post-image-link:hover{text-decoration:none}.featured-post-image{object-fit:cover;width:100%;height:100%;display:block}.featured-post-content{padding:var(--space-8);align-self:center}.featured-post-content .featured-post-label{color:var(--color-text);font-family:var(--font-heading);letter-spacing:.08em;margin-bottom:var(--space-2);text-transform:uppercase;font-size:.75rem;font-weight:700}.featured-post-content h2{font-size:1.6rem}.featured-post-tags{gap:var(--space-2);margin:var(--space-4) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.featured-post-tags .tag{margin-right:0}.post-summary{color:var(--color-text-muted)}.tag{background-color:var(--color-bg-alt);color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);margin-right:var(--space-2);font-size:.75rem;display:inline-block}.hero-image{width:100%;max-width:var(--layout-width);margin:0 auto var(--space-8);border-radius:var(--radius-lg);border:1px solid var(--color-border);display:block}@media (width<=700px){.featured-post-card article{grid-template-columns:1fr;min-height:0}.featured-post-image-link{min-height:0}.featured-post-image{aspect-ratio:16/9;height:auto}.featured-post-content{padding:var(--space-6)}}.breadcrumbs{max-width:var(--content-width);padding:var(--space-6) var(--space-6) 0;margin:0 auto}.breadcrumbs ol{color:var(--color-text-muted);align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.breadcrumbs li:not(:last-child):after{content:"/";margin-left:var(--space-2)}.breadcrumbs [aria-current=page]{text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;max-width:40ch;display:inline-block;overflow:hidden}.post-header{max-width:var(--content-width);padding:var(--space-8) var(--space-6) var(--space-6);text-align:center;margin:0 auto}.post-header .post-meta{color:var(--color-text-muted);font-size:.9rem}.post-header h1{margin-bottom:var(--space-4)}.post-intro{color:var(--color-text-muted);margin:0 auto var(--space-5);max-width:65ch;font-size:1.1rem}.post-topics{gap:var(--space-2);flex-wrap:wrap;justify-content:center;margin:0;padding:0;list-style:none;display:flex}.post-topics .tag{margin-right:0}.post-content{max-width:var(--content-width);padding:var(--space-4) var(--space-6) var(--space-12);margin:0 auto}.post-content h2{margin-top:var(--space-8)}.post-content :not(pre)>code{font-size:1.1em}.post-content blockquote{background-color:var(--color-bg-alt);border-left:4px solid var(--color-text);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--color-text-muted);margin:var(--space-6) 0;padding:var(--space-4) var(--space-5)}.post-content blockquote>:first-child{margin-top:0}.post-content blockquote>:last-child{margin-bottom:0}.post-content img{border:1px solid var(--color-border);border-radius:var(--radius-md);height:auto;margin:var(--space-8) auto;max-width:100%;display:block}.post-content pre{border:1px solid var(--color-border);border-radius:var(--radius-md);margin:var(--space-6) 0;padding:var(--space-4) var(--space-5);font-size:.9rem;line-height:1.6;overflow-x:auto}@media (prefers-color-scheme:dark){:root:not([data-theme]) .post-content pre.astro-code,:root:not([data-theme]) .post-content pre.astro-code span{background-color:var(--shiki-dark-bg)!important;color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}:root[data-theme=dark] .post-content pre.astro-code,:root[data-theme=dark] .post-content pre.astro-code span{background-color:var(--shiki-dark-bg)!important;color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}.skills-grid{gap:var(--space-4);margin:var(--space-6) 0;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.skill-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5)}.skill-card h3{margin:0 0 var(--space-2);font-size:1rem}.skill-card p{color:var(--color-text-muted);margin:0;font-size:.9rem}.button{background-color:var(--color-accent);color:var(--color-bg);font-family:var(--font-heading);padding:var(--space-3) var(--space-6);border-radius:var(--radius-pill);font-weight:600;text-decoration:none;display:inline-block}.button:hover{background-color:var(--color-accent-hover);box-shadow:0 0 0 var(--space-1) var(--color-bg), 0 0 0 var(--space-2) var(--color-text);color:var(--color-bg);text-decoration:none}.button:focus-visible{box-shadow:0 0 0 var(--space-1) var(--color-bg), 0 0 0 var(--space-2) var(--color-text)}
