@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Geist+Mono:wght@100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Sintony:wght@400;700&display=swap";body{font-family:Sintony,sans-serif;font-size:14px;font-style:normal;line-height:1.6;background-color:#161616;color:#f3f5f6;margin:0;padding:24px}main,.container{max-width:70ch;margin:0 auto}h1,h2,h3,h4,h5,h6{color:#bc7171;line-height:1.3;margin-top:24px;margin-bottom:16px}a{color:#bc7171;text-decoration:underline;text-underline-offset:2px;transition:all .2s ease-in-out}a:hover,a:focus{color:#000;background-color:#d5be82;outline:none}a:focus-visible{outline:3px solid #bc7171;outline-offset:3px}section{margin-bottom:48px}section h2{display:inline-block;padding-bottom:8px;border-bottom:2px solid #c6cdd1}section .emoji{display:inline-block;margin-right:.4rem;font-size:1.4rem}section .section-content{line-height:1.6;margin-top:8px}section p{margin-bottom:16px}ul li,ol li{margin-bottom:8px}@media (max-width: 576px){body,main,.container{padding:16px;max-width:100%}h1,h2,h3,h4,h5,h6{font-size:1.1em}}.breadcrumbs{background:linear-gradient(135deg,#161616,#232323);position:sticky;top:10px;float:right;margin-left:auto;margin-bottom:16px;z-index:1000;padding:4px 8px;font-family:Geist Mono,monospace;font-size:14px;border-radius:999px;box-shadow:0 2px 10px #0000001a;opacity:.95}.breadcrumbs a{text-decoration:none}.breadcrumbs span{font-weight:700;color:#f3f5f6}@media (max-width: 576px){.breadcrumbs{font-size:12px;float:none}}.button-link{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 16px;border-radius:999px;font-family:Sintony,sans-serif;font-size:14px;font-weight:500;color:#bc7171;background:#161616;text-decoration:none;cursor:pointer;box-shadow:0 2px 6px #00000026;transition:all .2s ease-in-out}.button-link:hover{background:linear-gradient(135deg,#405b70,#bdcdd9);color:#000;transform:translateY(-2px) scale(1.02);box-shadow:0 6px 12px #0003}.button-link:focus{outline:2px solid rgba(188,113,113,.3)}.button-link{font-weight:700}.back-link{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 16px;border-radius:999px;font-family:Sintony,sans-serif;font-size:14px;font-weight:500;color:#f3f5f6;background:linear-gradient(135deg,#181818,#2e2e2e);text-decoration:none;cursor:pointer;box-shadow:0 2px 6px #00000026;transition:all .2s ease-in-out}.back-link:hover{background:linear-gradient(135deg,#405b70,#bdcdd9);color:#000;transform:translateY(-2px) scale(1.02);box-shadow:0 6px 12px #0003}.back-link:focus{outline:2px solid rgba(188,113,113,.3)}.back-link{font-weight:700}.back-link:before{content:"<-";font-size:.9em}.back-link:hover,.back-link:focus-visible{transform:translate(-2px);outline:2px solid #bc7171}.site-navbar{display:flex;justify-content:space-between;align-items:right;flex-wrap:wrap;margin-bottom:16px}.site-navbar h1{flex:0 1 auto;align-self:flex-start}.site-navbar nav{display:flex;align-items:center;margin-left:auto;flex:1 1 auto;flex-wrap:wrap;justify-content:flex-end;gap:16px;font-family:Geist Mono,monospace}@media (max-width: 576px){.site-navbar{flex-direction:row;align-items:flex-end;width:100%}.site-navbar h1{flex:1 1 100%;text-align:left}.site-navbar nav{width:100%;margin-left:0;justify-content:right}}.toc{background:#232323;border-radius:8px;padding:1.5rem;margin:1.5rem 0;font-family:Sintony,sans-serif}.toc:not(.toc .toc){border-left:3px solid #959fa5}.toc,.toc ul{margin:0;list-style-type:none}.toc .toc-sublist{padding-left:1.5rem;margin:.5rem 0}.toc .toc-item{margin:.5rem 0}.toc a{text-decoration:none;color:#bdcdd9;transition:color .2s ease;display:inline-block}.toc a:hover{text-decoration:underline;color:#000;background-color:#d5be82}.toc:before{content:"Contents";display:block;margin-bottom:1rem;color:#f3f5f6;font-weight:700;font-size:1.15rem;border-bottom:1px solid #f3f5f6}.toc>.toc:before{content:none}@media (max-width: 576px){.toc{padding:1rem}.toc .toc-sublist{padding-left:1rem}}img{max-width:100%;height:auto;margin:0 auto;box-sizing:border-box;border:2px solid #3d4548;border-radius:8px;object-fit:cover;transition:all .3s ease-in}img:hover{color:#424242;opacity:1;transform:scale(1.1)}.img-center{display:block;margin-left:auto;margin-right:auto}.img-container{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%;max-width:100%;margin-bottom:24px;padding:0 8px}.img-item img{margin:0;max-width:100%;width:100%;height:auto}.img-item .caption{text-align:center;margin-top:4px;font-size:.75rem;color:#959fa5}@media (max-width: 768px){.img-container{grid-template-columns:1fr;padding:0 4px}}table:not(.highlight table){width:100%;border-collapse:separate;border-spacing:0;margin:24px 0;color:#f3f5f6;background:#232323;border-radius:8px;border-left:3px solid #bc7171;transition:all .3s ease}table:not(.highlight table):hover{transform:translateY(-2px)}table:not(.highlight table){line-height:1.25;transition:all .15s ease}table:not(.highlight table) th{background:#1b1b1b;color:#bc7171;font-weight:700;padding:8px;font-size:14px;text-align:left;position:relative;border-bottom:2px solid rgba(188,113,113,.2)}table:not(.highlight table) th:hover{background:#9948481a}table:not(.highlight table) th:not(:last-child){border-right:1px solid rgba(90,100,105,.2)}table:not(.highlight table) td{padding:8px;color:#dde2e5;position:relative;border-bottom:1px solid rgba(90,100,105,.2)}table:not(.highlight table) tbody tr:nth-child(odd){background-color:#5a64691a}table:not(.highlight table) tbody tr:nth-child(2n){background-color:#1f23250d}table:not(.highlight table) tbody tr{transition:all .15s ease}table:not(.highlight table) tbody tr:hover{background-color:#bc71710d}table:not(.highlight table) tbody tr:hover td{color:#fff}table:not(.highlight table) th:first-child{border-top-left-radius:8px}table:not(.highlight table) th:last-child{border-top-right-radius:8px}table:not(.highlight table) tr:last-child td:first-child{border-bottom-left-radius:8px}table:not(.highlight table) tr:last-child td:last-child{border-bottom-right-radius:8px;padding-right:24px}table:not(.highlight table) tr:last-child td{border-bottom:none}@media (max-width: 576px){table:not(.highlight table){display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:8px}}table:not(.highlight table) tr.success{background-color:#5f7d4514!important}table:not(.highlight table) tr.success:hover{background-color:#5f7d451f!important}table:not(.highlight table) tr.warning{background-color:#a1843614!important}table:not(.highlight table) tr.warning:hover{background-color:#a184361f!important}table:not(.highlight table) tr.danger{background-color:#76383814!important}table:not(.highlight table) tr.danger:hover{background-color:#7638381f!important}table:not(.highlight table) caption{caption-side:top;text-align:left;padding:16px 24px;font-weight:700;color:#bc7171;background:#99484814;border-top-left-radius:8px;border-top-right-radius:8px;font-size:18px}.contains-task-list{padding-left:0}.contains-task-list .task-list-item{display:flex;gap:.25rem}.contains-task-list .task-list-item input[type=checkbox]{appearance:none;width:16px;height:16px;border:2px solid #aeb7bc;border-radius:4px;background-color:#232323;cursor:pointer;position:relative;transition:all .2s ease}.contains-task-list .task-list-item input[type=checkbox]:checked{background-color:#9fbc85;border-color:#9fbc85}.contains-task-list .task-list-item input[type=checkbox]:checked:after{content:"✔";font-size:.7rem;position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.contains-task-list .task-list-item input[type=checkbox]:focus{outline:2px solid #9fbc85;outline-offset:2px}li{margin-bottom:8px}ul,ol{padding-left:24px;margin-bottom:16px}pre,code{font-family:Geist Mono,monospace;font-size:12px;line-height:1.5}.inline-code{background:#232323;color:#f3f5f6;padding:2px 4px;border-radius:8px;font-family:Geist Mono,monospace;font-weight:500;white-space:nowrap;display:inline;box-shadow:1px 1px 4px #00000026}.code-block-wrapper{position:relative;margin:4px 0}.code-lang-label{position:absolute;right:.5rem;font-size:12px;font-family:Geist Mono,monospace;-webkit-user-select:none;user-select:none;color:#959fa5;z-index:1}.code-block{border-radius:8px}.code-block code{font-size:12px}blockquote{margin:1.5em 0;padding:1em 1.5em;border-radius:8px;border-left:4px solid #7c9bb4;background-color:#f3f5f6;color:#1f2325;font-style:italic;box-shadow:1px 1px 4px #0000001a}blockquote p{margin:0}blockquote:before{margin-right:.5em;font-style:normal;font-weight:700}.blockquote-tip{border-left-color:#5f7d45;background-color:#d3e0c7}.blockquote-tip:before{content:"💡 TIP";color:#5f7d45}.blockquote-warning{border-left-color:#a18436;background-color:#efe6ce}.blockquote-warning:before{content:"⚠️ WARNING";color:#a18436}.blockquote-danger{border-left-color:#763838;background-color:#ddb6b6}.blockquote-danger:before{content:"🛑 DANGER";color:#763838}.blockquote-info{border-left-color:#405b70;background-color:#bdcdd9}.blockquote-info:before{content:"ℹ️ INFO";color:#405b70}.blockquote-note{border-left-color:#497870;background-color:#c8deda}.blockquote-note:before{content:"📝 NOTE";color:#497870}.footnotes{font-size:.85em;margin-top:1rem;border-top:1px solid #ccc;padding-top:.5rem}.footnotes ol{padding-left:1rem}.footnotes li{margin-bottom:.3rem}.post-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}.post-list .post-card{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 16px;border-radius:999px;font-family:Sintony,sans-serif;font-size:14px;font-weight:500;color:#f3f5f6;background:linear-gradient(135deg,#181818,#2e2e2e);text-decoration:none;cursor:pointer;box-shadow:0 2px 6px #00000026;transition:all .2s ease-in-out}.post-list .post-card:hover{background:linear-gradient(135deg,#405b70,#bdcdd9);color:#000;transform:translateY(-2px) scale(1.02);box-shadow:0 6px 12px #0003}.post-list .post-card:focus{outline:2px solid rgba(188,113,113,.3)}.post-list .post-card{text-decoration:none}.post-list .post-card a{text-decoration:none;color:inherit;transition:all .1s ease-in-out}.post-list .post-card a:hover,.post-list .post-card a:focus{background:none;text-decoration:none;color:#000}.post-list .post-card .post-date{font-family:Geist Mono,monospace;font-size:12px;opacity:.8;text-decoration:none}.post-list .post-card .post-title{font-weight:500;color:inherit;position:relative}.post-list .post-card .post-title:before{content:"•";margin:0 8px;color:#bc7171}.resume{max-width:80ch}.resume-header{text-align:center;padding:16px}.resume-header h1{margin:0 0 8px;font-size:24px;font-weight:700;color:#f3f5f6}.resume-header .subtitle{color:#aeb7bc;margin:0 0 16px;font-size:16px}.resume-header .contact-info{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.resume-section{margin:0}.resume-section p{margin:0 0 8px}.resume-section ul{list-style-type:square;margin:0 0 16px 16px;padding-left:0}.resume-section ul li::marker{color:#bc7171}.resume-item{margin-bottom:16px;padding:16px;background:#232323;border-radius:8px;border-left:3px solid #bc7171;transition:all .3s ease;box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d}.resume-item:hover{box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b;transform:translateY(-2px)}.resume-item{border-left:2px solid #77838a;transition:all .2s ease}.resume-item:hover{border-left-color:#bc7171}.resume-item-header{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:4px 16px;margin-bottom:8px}.resume-item-header .position{grid-column:1;grid-row:1;font-weight:700;color:#f3f5f6;margin:0;font-size:16px}.resume-item-header .date{grid-column:2;grid-row:1;text-align:right;color:#dde2e5;margin:0;font-size:14px}.resume-item-header .meta-info{grid-column:1;grid-row:2;color:#c6cdd1;margin:0;font-size:14px}.resume-item-header .location{grid-column:2;grid-row:2;text-align:right;color:#c6cdd1;font-size:12px}.resume-item .tech-stack{margin:8px 0}.resume-item .tech-stack strong{display:block;color:#f3f5f6;margin:0 0 4px;font-size:12px;font-weight:500}.resume-item .tech-stack .tech-items{font-size:12px;color:#aeb7bc}.resume-item .tech-stack .tech-items:not(:last-child):after{content:"•";margin:0 4px;color:#77838a}.resume-item-details ul li{position:relative;margin-bottom:4px}.resume .skills-container{margin:24px 0 0}.resume .skills-list{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0}.resume .skills-list .skill{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:2px 8px;border-radius:999px;font-family:Sintony,sans-serif;font-size:14px;font-weight:500;color:#f3f5f6;background:#303030;text-decoration:none;cursor:pointer;box-shadow:0 2px 6px #00000026;transition:all .2s ease-in-out}.resume .skills-list .skill:hover{background:#bc7171;color:#161616;transform:translateY(-2px) scale(1.02);box-shadow:0 6px 12px #0003}.resume .skills-list .skill:focus{outline:2px solid rgba(188,113,113,.3)}.resume .skills-list .skill:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0003}@media (max-width: 576px){.resume-item{padding:8px;margin-bottom:16px}.resume-item-header{display:flex;flex-direction:column;gap:4px}.resume-item-header .position,.resume-item-header .date,.resume-item-header .meta-info,.resume-item-header .location{text-align:left;margin:0}.resume-item-header .date,.resume-item-header .location{order:3;color:#959fa5}}@media print{.resume{padding:0;max-width:none;font-size:12pt;line-height:1.4}.resume *{color:#000!important;background:#fff!important;box-shadow:none!important}.resume-header{border-bottom:2px solid #000!important;margin-bottom:16px;padding:16px!important}.resume-header h1{font-size:18pt!important;margin-bottom:4px!important}.resume-header .contact-info a{border:1px solid #000!important;padding:1px 4px!important;margin:0 4px 4px 0!important}.resume-section{margin-bottom:24px;page-break-inside:avoid}.resume-section-title{font-size:14pt!important;border-bottom:1px solid #000!important}.resume-item{border:1px solid #ccc!important;border-left:3px solid #000!important;margin-bottom:16px;padding:8px!important;page-break-inside:avoid}.resume-item-header .date,.resume-item-header .meta-info,.resume-item-header .location,.resume-item .tech-stack .tech-items{color:#555!important}.resume .skills-list{margin:8px 0}.resume .skills-list .skill{border:1px solid #000!important;padding:1px 4px!important;margin:0 4px 4px 0!important;display:inline-block}.resume ul,.resume ol,.resume li{page-break-inside:avoid}.resume a[href]:after{content:" (" attr(href) ")";font-size:10pt;font-style:italic;color:#555!important}.resume a[href][href^="mailto:"]:after,.resume a[href][href^="tel:"]:after{content:""}.resume .resume-item:hover,.resume .skill:hover{transform:none!important}}@page{margin:.5in}@media print and (color){.resume .primary-color{color:#000!important}.resume .resume-item{border-left-color:#000!important}.resume li:before{color:#000!important}.resume li::marker{color:#000!important}}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px}.loading--fullscreen{position:fixed;inset:0;background:#161616f2;z-index:1000}.loading-spinner-wheel{width:2rem;height:2rem;border:.25rem solid rgba(188,113,113,.3);border-radius:50%;border-top-color:#bc7171;animation:spin .8s linear infinite}.loading-text{color:#aeb7bc;text-align:center;margin:0;font-family:Geist Mono,monospace}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
