@charset "UTF-8";@layer theme,base,components,utilities,overrides;html,body{height:100%}body{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;max-width:650px;margin:0 auto;padding:0 1rem}body>footer{margin-top:auto}@layer base{:root {
    --post-title-bottom: 0.25rem;
    
    --post-summary-bottom: 0.5rem;
    
    --post-meta-bottom: 1rem;
    
    --post-body-line-height: 1.7;
    
    --chip-font-size: 0.65rem;
    --meta-opacity: 0.85; } }@layer base{html {
    scrollbar-gutter: stable; }
  
  @supports not (scrollbar-gutter: stable) {
    html {
      overflow-y: scroll; } }
  
  .post .post-title a {
    text-decoration: none;
    color: inherit; }
  
  .mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } }@layer components{.tags, .tags-block {
    display: inline-block;
    margin-top: 0.2rem; }
  
  .tags a, .tags-block a,
  .tags a.tag,
  .post-tags .tags a,
  .portfolio-list .tags a,
  .taxonomy .tags a,
  .terms .tags a,
  .list .tags a,
  a[href*="/tags/"] {
    font-size: 0.75rem;
    
    line-height: 1.2;
    
    padding: 3px 8px;
    
    display: inline-block;
    margin-right: .25rem;
    margin-bottom: .25rem;
    border: 1px solid var(--chip-border);
    border-radius: var(--chip-radius);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    text-decoration: none;
    color: var(--muted-text);
    
    background: transparent;
    transition: border-color 0.2s ease, color 0.2s ease; }
  
  .tags a:hover, .tags-block a:hover,
  a[href*="/tags/"]:hover {
    border-color: var(--chip-border-hover);
    color: var(--heading-color);
     }
  
  .tags a:visited, .tags-block a:visited,
  a[href*="/tags/"]:visited {
    color: var(--muted-text); }
  
  .portfolio-list .tags, .portfolio-list .tags-block,
  article .tags,
  article .tags-block {
    margin-left: 1.5em; }
  
  .portfolio-list .tags, .portfolio-list .tags-block {
    margin-top: 0; }
  
  .portfolio-list .tags-block {
    margin-top: 0.6rem; }
  .taxonomy .tags, .taxonomy .tags-block,
  .terms .tags,
  .terms .tags-block,
  .list .tags,
  .list .tags-block {
    margin-left: 0; }
  
  .writing .post-tags {
    margin-top: 1.5rem;
    
    text-align: left;
     }
  .writing .post-tags .tags, .writing .post-tags .tags-block {
    margin-left: 0;
    
    display: block;
    
    text-align: left;
     }
  
  .portfolio .post-tags {
    margin-top: 1.5rem;
    
    text-align: left;
     }
  .portfolio .post-tags .tags, .portfolio .post-tags .tags-block {
    margin-left: 0;
    
    display: block;
    
    text-align: left;
     }
  
  
  .portfolio-list {
    list-style: none;
    padding-left: 0; }
  .portfolio-list li {
    margin-bottom: 1.5rem; }
  .portfolio-list li:first-child {
    margin-top: 0;
     }
  
  .portfolio-title {
    text-decoration: none;
    color: inherit;
    font-weight: 600;
    
    display: block;
    
    margin-bottom: 0.25rem;
     }
  
  .tags-block {
    
    display: block;
    
    margin-left: 0;
    
    padding-left: 0;
    margin-bottom: 0.5rem;
     }
  
  .portfolio-summary {
    margin-top: 0.25rem;
    
    margin-bottom: 0.25rem;
    
    text-indent: 0;
    
    margin-left: 0;
    
    padding-left: 0; }
  
  .posts-list {
    margin-top: 0;
    list-style: none;
    padding-left: 0;
    margin-left: 0; }
  .post-item {
    margin-bottom: .5rem; }
  .post-date {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    opacity: 0.8; }
  
  .posts-list .post-title {
    text-decoration: none;
    color: var(--muted-text);
    
    font-weight: 400;
    transition: color 0.2s ease; }
  .posts-list .post-title:hover {
    text-decoration: none;
    color: var(--heading-color);
     }
  
  
  .portfolio .post {
    margin-top: 2rem;
     }
  
  .post .post-title {
    margin: 0 0 var(--post-title-bottom) 0;
    font-weight: 700;
     }
  
  .post .post-summary {
    margin: 0 0 var(--post-summary-bottom) 0;
    font-style: italic;
     }
  
  .post .post-meta {
    margin: 0 0 var(--post-meta-bottom) 0;
    font-size: 0.95rem; }
  
  .post .post-meta .post-date {
    
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
  
  .post .post-body {
    line-height: var(--post-body-line-height); }
  
  .post .post-tags {
    margin-top: 2rem;
    text-align: left; }
  
  .post .post-tags .tags, .post .post-tags .tags-block {
    margin-left: 0;
    display: block;
    text-align: left; }
  
  .writing .post-title {
    margin-bottom: 0.25rem; }
  .writing .post-summary {
    margin: 0 0 0.4rem 0;
    font-style: italic;
     }
  .writing .post-meta {
    margin: 0 0 2rem 0;
    font-size: 0.95rem; }
  .writing .post {
    margin-top: 2rem; }
  
  
  
  .portfolio .post-body {
    margin-top: 2.5rem;
     }
  
  .portfolio-list .portfolio-title {
    display: inline-block;
    margin: 0 0 0.10rem 0;
    font-size: 1rem;
    line-height: 1.4;
    font-weight: 600; }
  
  .portfolio-list .portfolio-summary {
    margin: 0.05rem 0 0.7rem 0;
    color: var(--secondary-text-color, #666);
    font-size: 1rem;
    line-height: 1.4; }
  
  .portfolio-list .portfolio-highlights {
    padding-left: 2rem;
    padding-top: 0.1rem;
    margin-top: 1rem;
    list-style-position: outside; }
  .portfolio-list .portfolio-highlights li {
    margin: 0.35rem 0;
    font-size: 0.95rem;
    line-height: 1.5;
     }
  
  .muted {
    color: var(--muted-text); }
  
  .site-header {
    margin-top: 1rem; }
  
  .site-title {
    font-size: 1.75rem;
    font-weight: 500;
    margin: 0 0 0.2rem 0; }
  .site-title a {
    text-decoration: none;
    color: inherit; }
  .site-title a:hover {
    text-decoration: none;
    color: inherit; }
  
  .site-header nav a {
    text-decoration: none;
    color: var(--secondary-text-color);
    font-weight: 400;
    transition: color 0.2s ease;
    margin-right: 1rem; }
  .site-header nav a:hover {
    text-decoration: none;
    color: var(--heading-color); }
  
  main.writing article.post time.post-date,
  main.portfolio article.post time.post-date {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
  
  .tags, .tags-block,
  .tags a.tag,
  .tags-block a.tag {
    white-space: nowrap; }
  @media (max-width: 520px) {
    .tags, .tags-block,
    .tags a.tag,
    .tags-block a.tag {
      white-space: normal; }
    .post .post-title {
      margin-bottom: 0.35rem; }
    .post .post-summary {
      margin-bottom: 0.6rem; } }
  
  footer {
    text-align: center;
    padding: 1rem 0;
    font-size: 0.85rem;
    color: var(--footer-text-color); }
    footer .social-icons {
      margin-bottom: 0.5rem; }
      footer .social-icons a {
        display: inline-block;
        margin: 0 0.5rem;
        color: var(--icon-color, #000);
        text-decoration: none; }
      footer .social-icons svg {
        width: 20px;
        
        height: 20px;
        vertical-align: middle;
        opacity: 0.9;
        transition: opacity 0.2s ease; }
      footer .social-icons svg:hover {
        opacity: 1; }
  footer .social-icons svg {
    fill: var(--icon-color, #000); }
  
  
  .post-body {
    counter-reset: figure table; }
  .post-figure {
    text-align: center;
    
    max-width: 600px;
    margin: 1.5rem auto; }
    .post-figure img {
      width: 100%;
      height: auto; }
    .post-figure figcaption {
      font-size: 0.85rem;
      margin-top: 0.5rem;
      text-align: left;
      
      font-style: normal;
      
      color: inherit;
      
      
      counter-increment: figure; }
      .post-figure figcaption::before {
        content: "Figure " counter(figure) ". ";
        font-weight: 600;
         }
  
  .post-table {
    text-align: center;
    max-width: 600px;
    margin: 1.5rem auto; }
    .post-table table {
      width: 100%;
      border-collapse: collapse;
      margin: 0 auto;
       }
      .post-table table th,
      .post-table table td {
        padding: 0.75em 1em;
        text-align: left;
        border-bottom: 1px solid var(--code-background-color); }
      .post-table table thead th {
        font-weight: bold;
        color: var(--heading-color);
        border-bottom: 2px solid var(--heading-color); }
      .post-table table tbody td {
        color: var(--text-color); }
      .post-table table td:not(:first-child),
      .post-table table th:not(:first-child) {
        text-align: center; }
    .post-table figcaption {
      font-size: 0.85rem;
      margin-top: 0.5rem;
      text-align: left;
      font-style: normal;
      color: inherit;
      
      counter-increment: table; }
      .post-table figcaption::before {
        content: "Table " counter(table) ". ";
        font-weight: 600; }
  
  .post-resources {
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--code-background-color);
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    align-items: center; }
    .post-resources::before {
      content: "Resources:";
      font-weight: 600;
      color: var(--heading-color);
      margin-right: 1rem; }
    .post-resources a {
      font-size: 0.95rem;
      font-weight: 500; }
      .post-resources a + a::before {
        content: "·";
        margin: 0 0.75rem;
        color: var(--text-color);
        opacity: 0.5; }
  
  .theme-toggle {
    
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 1000;
    
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0.5rem;
    min-width: 2.5rem;
    min-height: 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    
    font-family: var(--font-secondary);
    font-size: 0.85rem;
    font-weight: normal;
    
    background: var(--code-background-color);
    color: var(--heading-color);
    border: 1px solid var(--heading-color);
    border-radius: 4px;
    
    cursor: pointer;
    transition: all 0.2s ease;
    opacity: 0.7;
    
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none; }
    .theme-toggle:hover {
      opacity: 1;
      border-color: var(--link-color); }
    .theme-toggle:focus {
      outline: 2px solid var(--link-color);
      outline-offset: 2px;
      opacity: 1; }
    .theme-toggle:active {
      transform: scale(0.95); }
    .theme-toggle .theme-icon {
      font-size: 1.1rem;
      line-height: 1;
      display: inline-block;
      vertical-align: middle; }
    .theme-toggle .theme-label {
      display: none; }
  
  @media (max-width: 480px) {
    .theme-toggle .theme-icon {
      font-size: 1.2rem; } }
  
  @media (max-width: 650px) {
    .theme-toggle {
      top: 0.75rem;
      right: 0.75rem; } } }@layer overrides{main {
    margin-top: 2rem; }
  
  h2 {
    font-size: 1.3rem; }
  
  p:has(+ ul),
  p:has(+ ol),
  h1:has(+ ul),
  h1:has(+ ol),
  h2:has(+ ul),
  h2:has(+ ol),
  h3:has(+ ul),
  h3:has(+ ol),
  h4:has(+ ul),
  h4:has(+ ol),
  h5:has(+ ul),
  h5:has(+ ol),
  h6:has(+ ul),
  h6:has(+ ol) {
    margin-bottom: 0.25rem; }
  
  p + ul,
  p + ol,
  h1 + ul,
  h1 + ol,
  h2 + ul,
  h2 + ol,
  h3 + ul,
  h3 + ol,
  h4 + ul,
  h4 + ol,
  h5 + ul,
  h5 + ol,
  h6 + ul,
  h6 + ol {
    margin-top: 0.25rem; }
  
  #education + p {
    font-size: inherit;
    line-height: inherit; }
  #education + p + p {
    font-size: inherit;
    line-height: inherit; }
  
  
  .breadcrumb {
    display: inline-flex;
    
    align-items: center;
    gap: 0;
    letter-spacing: 0;
    font-size: 0.9rem;
     }
  .breadcrumb a,
  .breadcrumb a:link,
  .breadcrumb a:visited {
    display: inline;
    
    margin: 0;
    padding: 0;
    text-decoration: none;
     }
  .breadcrumb a:hover {
    text-decoration: underline; }
  
  .breadcrumb span,
  .breadcrumb .crumb-title {
    margin: 0;
    padding: 0; }
  
  .breadcrumb a + span::before,
  .breadcrumb a + .crumb-title::before {
    content: ">";
    padding: 0 0.25ch;
    
     }
  
  .site-header nav .breadcrumb a::after {
    content: none; }
  
  
  @media (prefers-color-scheme: dark) {
    html:not(.light-theme) footer .social-icons a:hover {
      color: #fff; }
    html:not(.light-theme) footer .social-icons svg:hover {
      fill: #fff; } }
  html.dark-theme footer .social-icons a:hover {
    color: #fff; }
  html.dark-theme footer .social-icons svg:hover {
    fill: #fff; } }@media print{.site-header,.theme-toggle,footer{display:none !important}body{display:block;max-width:100%;padding:0}main{max-width:100%}a{color:#000;text-decoration:underline}h1,h2,h3,h4,h5,h6{page-break-after:avoid}pre,blockquote,figure{page-break-inside:avoid}pre,code{background:0 0;color:#000;border:1px solid #ccc}*{box-shadow:none !important;text-shadow:none !important}}