@charset "UTF-8";@layer base,components,utilities,overrides;@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}.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: 3.0rem;
     }
  
  .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 {
    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;
    color: #000; }
  
  .post .post-summary {
    margin: 0 0 var(--post-summary-bottom) 0;
    font-style: italic;
    color: #666; }
  
  .post .post-meta {
    margin: 0 0 var(--post-meta-bottom) 0;
    font-size: 0.95rem; }
  
  .post .post-meta .post-date {
    color: #666 !important;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
  
  .portfolio .post .post-meta .post-date {
    color: #444 !important; }
  
  .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;
    color: #666; }
  .writing .post-meta {
    margin: 0 0 2rem 0;
    font-size: 0.95rem; }
  .writing .post {
    margin-top: 2rem; }
  
  .portfolio .post-title {
    margin-bottom: 0.25rem; }
  .portfolio .post-summary {
    margin: 0 0 0.4rem 0;
    font-style: italic;
    color: #666; }
  .portfolio .post-meta {
    margin: 0 0 2rem 0;
    font-size: 0.95rem; }
  
  .muted {
    color: var(--muted-text); }
  .nowrap {
    white-space: nowrap; }
  
  .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; }
  
  .back-link {
    display: inline-block;
    margin-top: 0.25rem;
    font-size: 0.9rem;
    font-weight: 400;
    color: var(--muted-text);
    text-decoration: none !important;
    transition: color 0.2s ease; }
  .back-link:hover {
    text-decoration: none !important;
    color: #000; }
  
  .site-header nav a {
    text-decoration: none !important;
    color: var(--muted-text) !important;
    font-weight: 400;
    transition: color 0.2s ease;
    margin-right: 1rem; }
  .site-header nav a:hover {
    text-decoration: none !important;
    color: #000 !important; }
  
  .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; } }
  
  
  #refs.csl-bib-body,
  .references.csl-bib-body {
    margin-top: 0;
    
    font-size: 0.85rem;
    line-height: 1.35; }
  #refs .csl-entry,
  .references .csl-entry {
    margin: 0 0 0.3rem 0;
    line-height: 1.35;
    padding-left: 1.75em;
    
    text-indent: -1.25em;
    
    overflow-wrap: anywhere;
    white-space: normal; }
  #refs .csl-left-margin,
  .references .csl-left-margin,
  #refs .csl-right-inline,
  .references .csl-right-inline {
    display: inline;
    vertical-align: baseline; }
  #refs .csl-left-margin::after,
  .references .csl-left-margin::after {
    content: " "; }
  
  h4 + #refs,
  h4 + .references {
    margin-top: 0;
     }
  h4#references,
  h4:has(+ #refs),
  h4:has(+ .references) {
    margin-bottom: 0.25rem;
     }
  
  .footnotes {
    margin-top: 1rem;
    font-size: 0.85rem;
    color: inherit;
    
    line-height: 1.35; }
  
  .footnotes::before {
    content: "Footnotes";
    display: block;
    font-size: 1rem;
    
    font-weight: 600;
    line-height: 1.3;
    color: inherit;
    margin-top: 1rem;
    margin-bottom: 1.33rem; }
  .footnotes hr {
    display: none;
     }
  .footnotes ol {
    margin: 0;
    padding-left: 1.25rem;
    
    list-style-type: decimal;
     }
  .footnotes li {
    margin: 0 0 0.5rem 0;
    line-height: 1.35;
    overflow-wrap: anywhere;
    white-space: normal; }
  .footnotes li p {
    display: inline;
    
    margin: 0; }
  
  .footnotes a.footnote-backref {
    margin-left: 0.25rem;
    text-decoration: none;
    opacity: 0.85; }
  .footnotes a.footnote-backref:hover {
    text-decoration: underline;
    opacity: 1; }
  
  
  sup[id^="fnref"] {
    line-height: 0;
     }
  a.footnote-ref {
    text-decoration: none; }
  a.footnote-ref:hover {
    text-decoration: underline; }
  
  
  
  main.writing article.post time.post-date {
    color: #555 !important;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
  main.portfolio article.post time.post-date {
    color: #444 !important;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
  
  html,
  body {
    height: 100%; }
  body {
    
    min-height: 100vh;
    min-height: 100svh;
    
    margin: 0;
    display: flex;
    flex-direction: column; }
  
  body > footer {
    margin-top: auto; }
  
  footer {
    text-align: center;
    padding: 1rem 0;
    font-size: 0.85rem;
    color: #888; }
    footer .social-icons {
      margin-bottom: 0.5rem; }
      footer .social-icons a {
        display: inline-block;
        margin: 0 0.5rem; }
      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: #000; }
  
  
  .post-body {
    counter-reset: figure; }
  .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;
         } }@layer overrides{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; }
  
  
  .breadcrumb {
    display: inline-flex;
    
    align-items: center;
    gap: 0;
    letter-spacing: 0;
    font-size: 0.9rem;
    color: #555; }
  .breadcrumb a,
  .breadcrumb a:link,
  .breadcrumb a:visited {
    display: inline !important;
    
    margin: 0 !important;
    padding: 0 !important;
    text-decoration: none;
    color: #333; }
  .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;
    
    color: #999; }
  
  .site-header nav .breadcrumb a::after {
    content: none !important; } }