@font-face{font-family:Golos Text;src:url(/wave_out_fonts_golos-text-v6-latin-500_bbe41c106d56.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Golos Text;src:url(/wave_out_fonts_golos-text-v6-latin-regular_f66309c35d12.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/wave_out_fonts_ibm-plex-mono-v19-latin-regular_ed70bcbd8749.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}#nprogress{pointer-events:none}#nprogress .bar{background:#5784e8;position:fixed;z-index:9999;top:0;left:0;width:100%;height:3px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #5784e8,0 0 5px #5784e8;opacity:1;transform:rotate(3deg) translateY(-4px)}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar{position:absolute}:root{--f-primary: "Golos Text", sans-serif;--f-secondary: "IBM Plex Mono", monospace, sans-serif;--c-body-background: #e5e8f1;--c-secondary: #4d526a;--c-link: #5784e8;font-family:var(--f-primary);line-height:1.5;font-weight:400;font-size:16px;margin:0;background-color:var(--c-body-background);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--text-primary: #212b35;--text-secondary: var(--c-secondary);color:var(--text-primary)}html,body{overflow-x:hidden}@media(max-width:768px){:root{font-size:14px}}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out;will-change:opacity,transform}.fade-in--visible{opacity:1;transform:translateY(0)}.landing-page h1.fade-in{transition-delay:.1s}.landing-page>div:last-child.fade-in{transition-delay:.3s}@keyframes float{0%{transform:translateY(20px)}50%{transform:translateY(0)}to{transform:translateY(20px)}}@keyframes screenshotsMarquee{0%{transform:translate(0)}to{transform:translate(-33.333%)}}.screenshots-marquee-track{animation:screenshotsMarquee 90s linear infinite;will-change:transform}@media(prefers-reduced-motion:reduce){.screenshots-marquee-track{animation:none}}@keyframes fadeInOut{0%{opacity:1}50%{opacity:0}to{opacity:1}}@keyframes fadeOutIn{0%{opacity:0}50%{opacity:1}to{opacity:0}}.content-page{display:flex;flex:1 1 auto;flex-flow:column wrap;justify-content:flex-start;width:100%;max-width:800px;margin:2rem auto 0;h1,h2,h3{margin-top:2rem;font-weight:700}h1{font-size:2rem;line-height:1.2}h2{color:var(--c-secondary);font-size:1.5rem;line-height:1.3}h3{color:var(--c-secondary);font-size:1.3rem;line-height:1.4}p{color:var(--c-text);font-size:1rem;font-weight:400;line-height:1.5;margin-top:1.5rem}ul:not(.index-grid){color:var(--c-text);font-size:1rem;line-height:1.5;margin-top:1.5rem;padding-left:1.5rem;li{margin:.5rem 0;list-style-type:disc;padding-left:.25rem}}}.back-link{display:inline-block;color:var(--c-link);font-family:var(--f-secondary);font-size:.875rem;text-decoration:none;margin-bottom:1rem;transition:opacity .2s ease}.back-link:hover{opacity:.7}.post-date{display:block;color:var(--c-secondary);font-family:var(--f-secondary);font-size:.875rem;opacity:.7;margin-bottom:1.5rem}.anchor-heading{position:relative}.anchor-heading .anchor{position:absolute;left:-1.25rem;color:var(--c-secondary);opacity:0;text-decoration:none;transition:opacity .2s ease}.anchor-heading:hover .anchor{opacity:.5}.anchor-heading .anchor:hover{opacity:1;color:var(--c-link)}@media(max-width:768px){.anchor-heading .anchor{display:none}}.index-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;list-style:none;padding:0;margin:2rem 0 0}.index-grid li{margin:0}.index-card{display:flex;flex-direction:column;padding:1.5rem;background:#fff9;border:1px solid rgba(77,82,106,.1);border-radius:12px;text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease;height:100%}.index-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #212b351a}.index-card h2{color:var(--c-secondary, #4d526a);font-size:1.125rem;font-weight:500;margin:0 0 .5rem;line-height:1.3}.index-card time{display:block;color:var(--c-secondary);font-family:var(--f-secondary);font-size:.75rem;opacity:.7;margin-bottom:.75rem}.index-card p{color:var(--c-text, #4d526a);font-size:.875rem;line-height:1.5;margin:0;opacity:.8}.markdown-content{display:flex;flex-direction:column;gap:1.5rem}.markdown-content h2{margin-top:1rem}.markdown-content h2:first-child{margin-top:0}
