@charset "UTF-8";@layer 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-radius: 8px;
    --chip-border: #ddd;
    --chip-border-hover: #bbb;
    --chip-font-size: 0.65rem;
    --muted-text: #555;
    
    --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 !important;
    color: inherit !important; }
  
  .mono {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } }.tags,.tags-block{display:inline-block;margin-top:.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:.75rem !important;line-height:1.2 !important;padding:3px 8px !important;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 !important;text-decoration:none !important;color:var(--muted-text) !important;background:0 0;transition:border-color .2s ease,color .2s ease}.tags a:hover,.tags-block a:hover,a[href*="/tags/"]:hover{border-color:var(--chip-border-hover);color:#000 !important}.tags a:visited,.tags-block a:visited,a[href*="/tags/"]:visited{color:var(--muted-text) !important}.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:.6rem}.taxonomy .tags,.taxonomy .tags-block,.terms .tags,.terms .tags-block,.list .tags,.list .tags-block{margin-left:0 !important}.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}@layer components{.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 !important;
    color: inherit !important;
    font-weight: 600 !important;
    
    display: block;
    
    margin-bottom: 0.25rem;
     }
  
  .tags-block {
    
    display: block;
    
    margin-left: 0 !important;
    
    padding-left: 0 !important;
    margin-bottom: 0.5rem;
     }
  
  .portfolio-summary {
    margin-top: 0.25rem !important;
    
    margin-bottom: 0.25rem !important;
    
    text-indent: 0 !important;
    
    margin-left: 0 !important;
    
    padding-left: 0 !important; }
  
  .posts-list {
    margin-top: 0;
    list-style: none !important;
    padding-left: 0 !important;
    margin-left: 0 !important; }
  .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 !important;
    color: var(--muted-text) !important;
    
    font-weight: 400;
    transition: color 0.2s ease; }
  .posts-list .post-title:hover {
    text-decoration: none !important;
    color: #000 !important;
     }
  
  
  .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 !important;
    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 !important;
    color: inherit !important; }
  .site-title a:hover {
    text-decoration: none !important;
    color: inherit !important; }
  
  .site-header nav a {
    text-decoration: none !important;
    color: var(--secondary-text-color) !important;
    font-weight: 400;
    transition: color 0.2s ease;
    margin-right: 1rem; }
  .site-header nav a:hover {
    text-decoration: none !important;
    color: var(--heading-color) !important; }
  
  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 !important;
    
    margin: 0 !important;
    padding: 0 !important;
    text-decoration: none;
     }
  .breadcrumb a:hover {
    text-decoration: underline; }
  
  .breadcrumb span,
  .breadcrumb .crumb-title {
    margin: 0 !important;
    padding: 0 !important; }
  
  .breadcrumb a + span::before,
  .breadcrumb a + .crumb-title::before {
    content: ">";
    padding: 0 0.25ch;
    
     }
  
  .site-header nav .breadcrumb a::after {
    content: none !important; }
  
  
  @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}}