﻿.cards{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));grid-template-rows:auto;gap:24px;padding:12px 0}.card{display:flex;flex-direction:column;min-height:100px;background:var(--bg-2);border:2px solid var(--border-color);border-radius:10px;overflow:hidden}.card-info{display:flex;flex:1;flex-direction:column;padding:0 24px 24px 24px}.card-title{margin-top:.7em}.card-image{border:unset;width:100%;object-fit:cover;aspect-ratio:1/1}.card-image-placeholder{height:12px;width:100%}.card-description{margin-top:.5em;overflow:hidden}@media all and (max-width: 720px){.cards{gap:18px}}.cards-cutout .card-stage{background:radial-gradient(circle at 50% 45%, var(--stage-center), var(--stage-edge) 75%)}.cards-cutout .card-image{display:block;object-fit:contain;padding:12%;box-sizing:border-box;filter:drop-shadow(0 10px 14px var(--stage-shadow))}.card-filter{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}.card-filter[hidden],.card[hidden]{display:none}.card-filter button{padding:2px 12px;font:inherit;color:var(--text-0);border:2px solid var(--border-color);border-radius:999px;background:var(--bg-2);cursor:pointer}.card-filter button:hover{border-color:var(--primary-color)}.card-filter button[aria-pressed=true]{border-color:var(--primary-color);color:var(--primary-color)}.card-filter .count{color:var(--text-1);font-size:.85em}.card-tag{color:var(--text-1);font-size:.85em}.card-tag::before{content:"#"}.price{margin-top:.5em;font-weight:bold;color:var(--primary-color)}.price-sep{color:var(--text-1);font-weight:normal}.buy-links{list-style:none;padding:0;margin:.75em 0 0}.buy-links li{margin:.25em 0}.buy-links .region{display:inline-block;min-width:3.2em;color:var(--text-1);font-size:.85em}code{background-color:var(--bg-1);padding:.1em .2em;border-radius:5px;border:1px solid var(--border-color)}pre{border-radius:5px;border:1px solid var(--border-color);line-height:1.4;overflow-x:auto;padding:1em}pre code{background-color:rgba(0,0,0,0);color:inherit;font-size:100%;padding:0;border:0}pre{font-family:var(--code-font);position:relative;-webkit-overflow-scrolling:touch}pre code[class*=language-]{-webkit-overflow-scrolling:touch}pre code[class*=language-]::before{background:var(--bg-1);border-radius:0 0 .25rem .25rem;color:var(--text-0);font-size:12px;letter-spacing:.025rem;padding:.1rem .5rem;position:absolute;right:.1rem;margin-top:.1rem;text-align:right;text-transform:uppercase;top:0}pre code[class=language-javaScript]::before,pre code[class=language-js]::before{content:"js";background:#d79921;color:#282828}pre code[class*=language-yml]::before,pre code[class*=language-yaml]::before{content:"yaml";background:#b16286;color:#fbf1c7}pre code[class*=language-shell]::before,pre code[class*=language-bash]::before,pre code[class*=language-sh]::before{content:"shell";background:#98971a;color:#282828}pre code[class*=language-json]::before{content:"json";background:#458588;color:#fbf1c7}pre code[class*=language-python]::before,pre code[class*=language-py]::before{content:"py";background:#458588;color:#fabd2f}pre code[class*=language-css]::before{content:"css";background:#689d6a;color:#282828}pre code[class*=language-go]::before{content:"Go";background:#8ec07c;color:#282828}pre code[class*=language-md]::before,pre code[class*=language-md]::before{content:"Markdown";background:#076678;color:#fbf1c7}pre code[class*=language-rust]::before,pre code[class*=language-rs]::before{content:"rust";background:#d65d0e;color:#fbf1c7}.cover{position:relative;width:100%;aspect-ratio:5/2;margin-top:2rem;border:2px solid var(--border-color);border-radius:10px;background:var(--bg-2);overflow:hidden}.cover>img{border:unset;width:100%;height:100%}.cover-backdrop{position:absolute;inset:0;object-fit:cover;filter:blur(24px) saturate(0.8);transform:scale(1.2);opacity:.8}.cover-image{position:relative;object-fit:contain;padding:1rem;box-sizing:border-box}.cover+.title .page-header{margin-top:1.5rem}.back-link{display:inline-block;margin-top:1.5rem}.back-link+.cover{margin-top:1rem}.page-link{margin-top:.75em}@media all and (max-width: 640px){.cover{aspect-ratio:16/9}}.cover-cutout{background:radial-gradient(ellipse at 50% 45%, var(--stage-center), var(--stage-edge) 75%)}.cover-cutout .cover-backdrop{display:none}.cover-cutout .cover-image{padding:1.5rem;filter:drop-shadow(0 10px 14px var(--stage-shadow))}.card.reserved .card-stage,.cover.reserved{position:relative}.card.reserved .card-image,.cover.reserved .cover-image{filter:blur(6px) grayscale(0.7);opacity:.6}.card.reserved .card-stage::after,.cover.reserved::after{content:"reserved";position:absolute;top:50%;left:50%;transform:translate(-50%, -50%) rotate(-12deg);padding:.1em .6em;border:4px solid var(--primary-color);border-radius:8px;color:var(--primary-color);font-family:var(--header-font);font-size:2.2rem;font-weight:bold;letter-spacing:.1em;text-transform:uppercase;pointer-events:none}.reserve{margin-top:1.25em}.reserve[hidden],.reserve-button[hidden]{display:none}.reserve-status{margin:0 0 .5em;color:var(--text-1)}.card .reserve-button{align-self:flex-start;margin-top:auto}.card-info>:has(+.reserve-button){margin-bottom:1.25em}.reserve-button,.reserve-dialog button,.reserve-dialog input{padding:4px 14px;font:inherit;color:var(--text-0);border:2px solid var(--border-color);border-radius:999px;background:var(--bg-2)}.reserve-button,.reserve-dialog button{cursor:pointer}.reserve-button:hover,.reserve-dialog button:hover,.reserve-dialog input:focus{border-color:var(--primary-color);outline:none}.reserve-button,.reserve-dialog .reserve-submit{color:var(--primary-color);font-weight:bold;border-color:var(--primary-color);background:rgba(0,0,0,0)}.reserve-button:hover,.reserve-dialog .reserve-submit:hover{color:var(--bg-0);background:var(--primary-color)}.reserve-button.reserve-cancel{color:var(--text-1);font-size:.85em;font-weight:normal;border-color:var(--text-1)}.reserve-button.reserve-cancel:hover{color:var(--text-0);border-color:var(--text-0);background:rgba(0,0,0,0)}.reserve-dialog{width:min(440px,100vw - 32px);box-sizing:border-box;padding:24px;color:var(--text-0);border:2px solid var(--border-color);border-radius:10px;background:var(--bg-0)}.reserve-dialog::backdrop{background:rgba(0,0,0,.6)}.reserve-form{display:flex;flex-direction:column;gap:.75em}.reserve-title{margin:0;font-family:var(--header-font);font-size:1.3em;font-weight:bold}.reserve-dialog input{width:100%;box-sizing:border-box}.reserve-actions{display:flex;gap:.6em}.reserve-dialog .reserve-submit:disabled{opacity:.6;cursor:wait}.reserve-message:empty{display:none}.reserve-message{margin:0;color:var(--primary-color)}.reserve-hint{margin:0;color:var(--text-1);font-size:.85em}.page-header{font-size:2.5em;line-height:100%;font-family:var(--header-font);margin:4rem 0px 1rem 0px}.centered-header{font-family:var(--header-font);position:absolute;top:40%;left:50%;transform:translate(-50%, -50%);text-align:center;font-size:4em}header{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:1em 0}header .main{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;font-size:1.5rem;margin-bottom:10px}.socials{flex-grow:0;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:flex-end;gap:6px}.social{border-bottom:unset;background-image:unset;padding:2px}.social>img{border:unset;width:24px;height:24px}.meta{color:var(--text-1);letter-spacing:-.5px}#dark-mode-toggle>img{display:none;width:15px;height:15px;border:unset}h1,h2,h3,h4,h5,h6{font-size:1.2rem;margin-top:2em}h1::before{color:var(--primary-color);content:"# "}h2::before{color:var(--primary-color);content:"## "}h3::before{color:var(--primary-color);content:"### "}h4::before{color:var(--primary-color);content:"#### "}h5::before{color:var(--primary-color);content:"##### "}h6::before{color:var(--primary-color);content:"###### "}img{border:3px solid var(--bg-1);max-width:100%}figure{box-sizing:border-box;display:inline-block;margin:0;max-width:100%}figure img{max-height:500px}@media screen and (min-width: 600px){figure{padding:0 40px}}figure h4{font-size:1rem;margin:0;margin-bottom:1em}figure h4::before{content:"↳ "}svg{max-height:15px}.primary-color{color:var(--primary-color)}.draft-label{color:var(--hover-color);text-decoration:none;padding:2px 4px;border-radius:4px;margin-left:6px;background-color:var(--primary-color)}::-moz-selection{background:var(--primary-color);color:var(--hover-color);text-shadow:none}::selection{background:var(--primary-color);color:var(--hover-color)}p{line-height:1.5}hr{border:0;border-top:3px solid var(--border-color);margin:1em 0}blockquote{border-left:3px solid var(--border-color);color:var(--text-1);margin:0;padding-left:1em}a{border-bottom:3px solid var(--primary-color);color:inherit;text-decoration:none}a:hover{background-color:var(--primary-color);color:var(--hover-color)}time{color:var(--text-1)}.list>ul{margin:0;padding:1rem 0 0 0}.list-item{margin-bottom:30px}@media all and (max-width: 640px){.post-header{display:grid;grid-template-rows:auto 1fr}.post-header h1{margin-top:0}.post-header h1 a{border-bottom:none}}@media all and (min-width: 640px){.post-header{display:grid;gap:1rem;grid-row-gap:1.5rem;grid-template-columns:auto 1fr}.post-header h1{margin:0;font-size:130%}.post-header h1 a{border-bottom:none}}#dark-mode-toggle{border-bottom:none}#dark-mode-toggle:hover{background-color:rgba(0,0,0,0)}table{border-spacing:0;border-collapse:collapse}table th{padding:6px 13px;border:1px solid var(--border-color);font-size:large}table td{padding:6px 13px;border:1px solid var(--border-color)}.tags li::before{content:"🏷 "}.tags a{border-bottom:3px solid var(--primary-color)}.tags a:hover{color:var(--hover-color);background-color:var(--primary-color)}:root{--border-color: var(--bg-1);--text-font: "Jetbrains Mono";--header-font: "Space Grotesk", "Helvetica", sans-serif;--code-font: "Jetbrains Mono"}html{background-color:var(--bg-0);color:var(--text-0);font-family:var(--text-font);line-height:1.6em}.content{max-width:1000px;margin:0 auto;padding:0 24px;word-wrap:break-word}@media all and (min-width: 640px){html{font-size:16.5px}}@media all and (min-width: 720px){html{font-size:17px}}@media all and (min-width: 960px){html{font-size:18px}}