@font-face{font-family:Stella Demo;src:url(/fonts/Stella\ Demo.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}*{box-sizing:border-box}*,body,html{padding:0;margin:0}body,html{max-width:100vw;overflow-x:clip;background-color:var(--background-color);color:var(--text-color);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Ubuntu,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}:root,[data-theme=light]{--background-color:#ffffff;--text-color:#000000;--text-primary:#000000;--text-secondary-theme:#333333;--text-muted:#666666;--code-bg:rgba(0,0,0,0.1);--divider:rgba(0,0,0,0.12);--placeholder-bg:#f0f0f0;--tm-surface:rgba(255,255,255,0.85);--tm-border:rgba(0,0,0,0.1);--tm-text:#333;--tm-hover:rgba(0,0,0,0.05);--tm-active-bg:rgba(0,0,0,0.9);--tm-active-text:#fff}[data-theme=dark]{--background-color:#1E1E1E;--text-color:#e0e0e0;--text-primary:#e0e0e0;--text-secondary-theme:#bbbbbb;--text-muted:#aaaaaa;--code-bg:rgba(255,255,255,0.08);--divider:rgba(255,255,255,0.1);--placeholder-bg:#2a2a2a;--tm-surface:rgba(40,40,40,0.9);--tm-border:rgba(255,255,255,0.12);--tm-text:#ddd;--tm-hover:rgba(255,255,255,0.08);--tm-active-bg:rgba(255,255,255,0.9);--tm-active-text:#1E1E1E}[data-theme=oled]{--background-color:#000000;--text-color:#e0e0e0;--text-primary:#e0e0e0;--text-secondary-theme:#aaaaaa;--text-muted:#999999;--code-bg:rgba(255,255,255,0.06);--divider:rgba(255,255,255,0.08);--placeholder-bg:#111111;--tm-surface:rgba(20,20,20,0.95);--tm-border:rgba(255,255,255,0.1);--tm-text:#ccc;--tm-hover:rgba(255,255,255,0.06);--tm-active-bg:rgba(255,255,255,0.9);--tm-active-text:#000000}[data-theme=dark],[data-theme=oled]{color-scheme:dark}[data-theme=light]{color-scheme:light}[data-theme=dark] body,[data-theme=oled] body{background-color:var(--background-color);color:var(--text-color)}.theme-module{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom, 0px));right:calc(24px + env(safe-area-inset-right, 0px));z-index:1100;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.theme-module-trigger{width:40px;height:40px;border-radius:50%;border:1px solid var(--tm-border);background:var(--tm-surface);color:var(--tm-text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.12);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .2s ease}.theme-module-trigger:hover{transform:scale(1.08);box-shadow:0 4px 14px rgba(0,0,0,.18)}.theme-module-panel{pointer-events:none;opacity:0;transform:translateY(8px) scale(.95);transition:opacity .2s ease,transform .2s ease;background:var(--tm-surface);border:1px solid var(--tm-border);border-radius:14px;padding:6px;display:flex;flex-direction:column;gap:2px;box-shadow:0 8px 24px rgba(0,0,0,.16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.theme-module-panel.open{pointer-events:auto;opacity:1;transform:translateY(0) scale(1)}.theme-module-option{display:flex;align-items:center;gap:10px;padding:8px 14px;border:none;border-radius:10px;background:transparent;color:var(--tm-text);font-family:League Spartan,PolySans,system-ui,sans-serif;font-weight:600;font-size:14px;cursor:pointer;transition:background .15s ease;white-space:nowrap}.theme-module-option:hover{background:var(--tm-hover)}.theme-module-option.active{background:var(--tm-active-bg);color:var(--tm-active-text)}.theme-module-swatch{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--tm-border);flex-shrink:0}.theme-module-swatch[data-swatch=light]{background:#ffffff}.theme-module-swatch[data-swatch=dark]{background:#1E1E1E}.theme-module-swatch[data-swatch=oled]{background:#000000}.theme-module-label{line-height:1}@media (max-width:768px){.theme-module{bottom:calc(16px + env(safe-area-inset-bottom, 0px));right:calc(16px + env(safe-area-inset-right, 0px))}.theme-module-trigger{width:36px;height:36px}}@font-face{font-family:PolySans;src:url(/fonts/PolySans-Neutral.woff2) format("woff2"),url(/fonts/PolySans-Neutral.otf) format("opentype"),url(/fonts/PolySans-Neutral.ttf) format("truetype"),url(/fonts/PolySans%20Neutral.woff2) format("woff2"),url(/fonts/PolySans%20Neutral.otf) format("opentype"),url(/fonts/PolySans%20Neutral.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:PolySans;src:url(/fonts/PolySans-Median.woff2) format("woff2"),url(/fonts/PolySans-Median.otf) format("opentype"),url(/fonts/PolySans-Median.ttf) format("truetype"),url(/fonts/PolySans%20Median.woff2) format("woff2"),url(/fonts/PolySans%20Median.otf) format("opentype"),url(/fonts/PolySans%20Median.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:PolySans;src:url(/fonts/PolySans-Bulky.woff2) format("woff2"),url(/fonts/PolySans-Bulky.otf) format("opentype"),url(/fonts/PolySans-Bulky.ttf) format("truetype"),url(/fonts/PolySans%20Bulky.woff2) format("woff2"),url(/fonts/PolySans%20Bulky.otf) format("opentype"),url(/fonts/PolySans%20Bulky.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root,[data-theme=light]{--m-label:#8a8a8a}[data-theme=dark]{--m-label:#8f8f8f}[data-theme=oled]{--m-label:#858585}:root,[data-theme=light]{--m-faint:#c6c6c6}[data-theme=dark]{--m-faint:#444444}[data-theme=oled]{--m-faint:#353535}:root,[data-theme=light]{--m-scrim:rgba(18,18,20,0.5)}[data-theme=dark]{--m-scrim:rgba(0,0,0,0.62)}[data-theme=oled]{--m-scrim:rgba(0,0,0,0.72)}:root,[data-theme=light]{--m-lead:#0e7c4a}[data-theme=dark]{--m-lead:#5ec98f}[data-theme=oled]{--m-lead:#57c489}:root{--m-media-radius:8px;--m-safe-top:env(safe-area-inset-top,0px);--m-safe-bottom:env(safe-area-inset-bottom,0px);--m-safe-x:max(env(safe-area-inset-left,0px),env(safe-area-inset-right,0px));--m-corner-glyph:1.125rem;--m-corner-target:2.75rem;--m-mark-top:calc(var(--m-safe-top) + 2.5rem);--m-mark-size:clamp(36px,8vw,56px);--m-mark-band:calc(var(--m-mark-top) + var(--m-mark-size));--m-fade:4rem;--m-dither:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='96' height='96'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0.07 0 0 0 0.965'/></filter><rect width='96' height='96' filter='url(%23n)'/></svg>");--m-dither-size:96px 96px}.m-page{--m-head-gap:2.25rem;width:100%;max-width:40rem;margin:0 auto;padding:calc(var(--m-safe-top) + clamp(3rem, 12vh, 7rem)) max(var(--m-gutter,1.5rem),var(--m-safe-x)) calc(var(--m-safe-bottom) + 6rem);font-family:PolySans,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;color:var(--text-primary);font-size:1.0625rem;font-weight:400;line-height:1.4}@media (max-width:30rem){.m-page{--m-gutter:1.25rem;padding-top:calc(var(--m-safe-top) + 3rem);padding-bottom:calc(var(--m-safe-bottom) + 4.5rem)}:root{--m-fade:2rem}}@media (max-width:26rem){.m-page{font-size:1rem}}.m-header{text-align:center;margin-bottom:var(--m-head-gap)}.m-name{font-family:Stella Demo,PolySans,system-ui,sans-serif;font-size:var(--m-mark-size);font-weight:400;line-height:1;color:var(--text-primary);margin:0}a.m-name{display:inline-block;transition:opacity .18s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media (hover:hover){a.m-name:hover{opacity:.6}}a.m-name:focus-visible{opacity:.6}a.m-name:active{opacity:.6;transition:none}@media (hover:none) and (pointer:coarse){body:has(main>.m-page),html:has(main>.m-page){height:100%;overflow:hidden}main:has(>.m-page){position:fixed;inset:0;overflow-y:auto;overscroll-behavior-y:contain}}.m-page{--m-top-band:var(--m-safe-top);--m-page-mask-top:linear-gradient(to bottom,#000 0,#000 var(--m-top-band),rgba(0,0,0,0.926) calc(var(--m-top-band) + var(--m-fade) * 0.167),rgba(0,0,0,0.741) calc(var(--m-top-band) + var(--m-fade) * 0.333),rgba(0,0,0,0.5) calc(var(--m-top-band) + var(--m-fade) * 0.5),rgba(0,0,0,0.259) calc(var(--m-top-band) + var(--m-fade) * 0.667),rgba(0,0,0,0.074) calc(var(--m-top-band) + var(--m-fade) * 0.833),transparent 100%);--m-page-mask-bottom:linear-gradient(to bottom,transparent 0,rgba(0,0,0,0.074) calc(var(--m-fade) * 0.167),rgba(0,0,0,0.259) calc(var(--m-fade) * 0.333),rgba(0,0,0,0.5) calc(var(--m-fade) * 0.5),rgba(0,0,0,0.741) calc(var(--m-fade) * 0.667),rgba(0,0,0,0.926) calc(var(--m-fade) * 0.833),#000 var(--m-fade),#000 100%)}.m-page:after,.m-page:before{content:"";position:fixed;left:0;right:0;z-index:5;pointer-events:none;background:var(--background-color)}.m-page:before{top:0;height:calc(var(--m-top-band) + var(--m-fade));-webkit-mask-image:var(--m-page-mask-top);mask-image:var(--m-page-mask-top)}.m-page:after{bottom:0;height:calc(var(--m-fade) + var(--m-safe-bottom));-webkit-mask-image:var(--m-page-mask-bottom);mask-image:var(--m-page-mask-bottom)}.m-page-home{--m-top-band:var(--m-mark-band);--m-head-gap:var(--m-fade);padding-top:var(--m-mark-top)}.m-page-home .m-header{position:-webkit-sticky;position:sticky;top:var(--m-mark-top);z-index:6}.m-section+.m-section{margin-top:1.75rem}.m-section-label{font-size:inherit;font-weight:700;line-height:inherit;color:var(--m-label);margin:0 0 .375rem}.m-list{list-style:none;margin:0;padding:0}.m-intro{color:var(--m-label);line-height:1.5}.m-intro p{margin:0}.m-intro-lead{font-weight:700;color:var(--m-lead)}.m-intro-accent{color:var(--text-primary)}a.m-intro-accent{text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:.2em;transition:-webkit-text-decoration-color .15s ease;transition:text-decoration-color .15s ease;transition:text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}a.m-intro-accent:focus-visible,a.m-intro-accent:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.m-intro .m-links{display:flex;flex-wrap:wrap;gap:.25rem 1.125rem;margin-top:.875rem}.m-links a{color:inherit;text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:.2em;transition:color .15s ease,-webkit-text-decoration-color .15s ease;transition:color .15s ease,text-decoration-color .15s ease;transition:color .15s ease,text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}.m-links a:focus-visible,.m-links a:hover{color:var(--text-primary);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.m-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.1875rem 0}.m-row-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text-primary)}.m-row-meta{flex:0 0 auto;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.m-row-meta-short{display:none}a.m-row .m-row-name{text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:.2em;transition:-webkit-text-decoration-color .15s ease;transition:text-decoration-color .15s ease;transition:text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}a.m-row:focus-visible .m-row-name,a.m-row:hover .m-row-name{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}a.m-row:focus-visible{outline:2px solid var(--text-muted);outline-offset:4px;border-radius:2px}@media (max-width:30rem){.m-row-meta-long{display:none}.m-row-meta-short{display:inline}}@media (max-width:26rem){.m-row{gap:.75rem}}.m-mark{position:-webkit-sticky;position:sticky;top:var(--m-mark-top);z-index:6}.m-back,.m-header .theme-module-trigger{display:flex;align-items:center;justify-content:center;width:var(--m-corner-target);height:var(--m-corner-target);color:var(--text-muted);transition:color .15s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.m-back,.m-header .theme-module{position:absolute;top:50%;transform:translateY(-50%)}.m-back{left:calc((var(--m-corner-glyph) - var(--m-corner-target)) / 2)}.m-header .theme-module{right:calc((var(--m-corner-glyph) - var(--m-corner-target)) / 2);bottom:auto;z-index:7}.m-header .theme-module-trigger{border:none;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.m-header .theme-module-trigger svg{display:block;width:var(--m-corner-glyph);height:var(--m-corner-glyph)}.m-header .theme-module-panel{position:absolute;top:calc(100% + .375rem);right:0;transform:translateY(-6px) scale(.96)}.m-header .theme-module-panel.open{transform:none}@media (hover:hover){.m-back:hover,.m-header .theme-module-trigger:hover{color:var(--text-primary)}}.m-back:active,.m-header .theme-module-trigger:active{color:var(--text-primary);transition:none}.m-back:focus-visible,.m-header .theme-module-trigger:focus-visible{outline:2px solid var(--text-muted);outline-offset:-.5rem;border-radius:50%;color:var(--text-primary)}.m-back-icon{display:block;width:var(--m-corner-glyph);height:calc(var(--m-corner-glyph) * 14 / 18)}.m-page:has(.m-mark){--m-top-band:var(--m-mark-band);--m-head-gap:var(--m-fade);padding-top:var(--m-mark-top)}.m-detail-title{font-size:clamp(1.625rem,5vw,2rem);font-weight:700;line-height:1.15;color:var(--text-primary);margin:0}.m-detail-meta{margin-top:.375rem;color:var(--text-muted)}.m-prose{margin-top:1.5rem;color:var(--text-secondary-theme);line-height:1.55}.m-prose>*+*{margin-top:.875rem}.m-prose a{color:var(--text-primary);text-decoration:underline;text-underline-offset:.2em}.m-prose h2,.m-prose h3,.m-prose h4{margin-top:1.75rem;color:var(--text-primary);font-weight:500;line-height:1.25}.m-prose h2{font-size:1.25rem}.m-prose h3{font-size:1.125rem}.m-prose h4{font-size:1.0625rem}.m-prose ol,.m-prose ul{padding-left:1.25rem}.m-prose li+li{margin-top:.25rem}.m-prose iframe,.m-prose img,.m-prose video{display:block;width:100%;height:auto;margin:1.5rem 0;border-radius:4px}.m-prose blockquote{padding-left:1rem;border-left:2px solid var(--divider);color:var(--text-muted)}.m-prose code{padding:.1em .35em;border-radius:3px;background:var(--code-bg);font-size:.9em}.m-prose pre{overflow-x:auto;padding:1rem;border-radius:4px;background:var(--code-bg)}.m-prose pre code{padding:0;background:none}.m-prose .blog-image-pair{gap:1rem;margin:1.5rem 0}.m-prose .blog-image-pair img{margin:0;min-width:0}@media (max-width:30rem){.m-prose .blog-image-pair{flex-direction:column}}.m-media{--m-media-gap:1rem;margin-top:2rem;column-count:4;column-gap:var(--m-media-gap)}.m-media-cell{page-break-inside:avoid;break-inside:avoid;padding-bottom:var(--m-media-gap)}.m-media-item{display:block;position:relative;width:100%;aspect-ratio:3/2;padding:0;border:0;border-radius:var(--m-media-radius);overflow:hidden;background:var(--placeholder-bg);cursor:zoom-in;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.m-media-item img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (hover:hover){.m-media-item:hover{opacity:.82}}.m-media-item:focus-visible{outline:2px solid var(--text-muted);outline-offset:3px}.m-media-item[data-standin]{opacity:0;transition:none}.m-gallery-section+.m-gallery-section{margin-top:2.5rem}.m-gallery-title{font-size:inherit;font-weight:700;color:var(--text-muted);margin:0 0 .375rem;column-span:all}@media (max-width:75rem){.m-media{column-count:3}}@media (max-width:64rem){.m-media{column-count:2}}@media (max-width:48rem){.m-media{column-count:1}}.m-entries{margin-top:2.75rem}.m-entry{scroll-margin-top:calc(var(--m-mark-band) + var(--m-fade));contain:layout}.m-entry+.m-entry{margin-top:3.25rem}.m-entry-head{font-size:inherit;font-weight:400}.m-entry-period{color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.m-entry-links{flex:0 0 auto;display:flex;align-self:center;margin:-.25rem -.25rem -.25rem 0;color:var(--text-primary)}.m-entry-link{display:flex;padding:.25rem;transition:opacity .15s ease}.m-entry-link:focus-visible,.m-entry-link:hover{opacity:.55}.m-entry-link:focus-visible{outline:2px solid var(--text-muted);outline-offset:1px;border-radius:5px}.m-entry-mark{width:1.15em;height:1.15em;background:currentColor;-webkit-mask-image:var(--m-mark);mask-image:var(--m-mark);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.m-entry-mark[data-mark=app-store]{--m-mark:url(/assets/icons/app-store.png)}.m-entry-mark[data-mark=article]{--m-mark:url(/assets/icons/article.png)}.m-entry-mark[data-mark=link]{--m-mark:url(/assets/icons/link.png)}.m-entry-copy{margin-top:.375rem;color:var(--m-label);line-height:1.5}.m-entry-copy p+p{margin-top:.625rem}@property --m-peek-tail{syntax:"<length>";inherits:true;initial-value:0}.m-entry-peek{--m-peek-line:1.5em;--m-peek-tail:12rem;--m-peek-wash-end:72%;--m-peek-rest:auto;position:relative;height:var(--m-peek-rest);overflow:hidden;contain:layout paint;transition:height .36s cubic-bezier(.32,.72,0,1)}.m-entry-peek[data-open]{height:var(--m-peek-full,auto)}.m-entry-gauge{visibility:hidden}.m-entry-peek-body{position:absolute;top:0;left:0;right:0}.m-entry-peek:after{--m-peek-wash:linear-gradient(to right,transparent 0,rgba(0,0,0,0.074) calc(var(--m-peek-wash-end) * 0.167),rgba(0,0,0,0.259) calc(var(--m-peek-wash-end) * 0.333),rgba(0,0,0,0.5) calc(var(--m-peek-wash-end) * 0.5),rgba(0,0,0,0.741) calc(var(--m-peek-wash-end) * 0.667),rgba(0,0,0,0.926) calc(var(--m-peek-wash-end) * 0.833),#000 var(--m-peek-wash-end),#000 100%);content:"";position:absolute;left:max(var(--m-peek-lede-end,0px),100% - var(--m-peek-tail));right:0;bottom:0;height:var(--m-peek-line);background:var(--background-color);-webkit-mask-image:var(--m-peek-wash);mask-image:var(--m-peek-wash);pointer-events:none;transition:opacity .22s ease}.m-entry-peek[data-open]:after{opacity:0}@media (max-width:30rem){.m-entry-peek{--m-peek-tail:7.5rem;--m-peek-wash-end:58%}}.m-entry-more{position:absolute;right:0;bottom:0;z-index:1;height:var(--m-peek-line);padding:0;border:0;background:transparent;color:var(--m-faint);font-family:inherit;font-size:inherit;font-weight:400;line-height:var(--m-peek-line);cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:.2em;transition:opacity .15s ease,color .15s ease,-webkit-text-decoration-color .15s ease;transition:opacity .15s ease,color .15s ease,text-decoration-color .15s ease;transition:opacity .15s ease,color .15s ease,text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media (hover:hover){.m-entry-more{opacity:0}.m-entry-copy:hover .m-entry-more,.m-entry-more:focus-visible{opacity:1}.m-entry-more:hover{color:var(--text-primary);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}}.m-entry-more:active{color:var(--text-primary);transition:none}.m-entry-more:focus-visible{outline:none;color:var(--text-primary);-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.m-entry-less{display:inline-flex;align-items:center;gap:.375rem;margin-top:.875rem;padding:0;border:0;background:transparent;color:var(--m-label);font-family:inherit;font-size:.9375rem;font-weight:400;line-height:1.4;cursor:pointer;transition:color .15s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media (hover:hover){.m-entry-less:hover{color:var(--text-primary)}}.m-entry-less:active{color:var(--text-primary);transition:none}.m-entry-less:focus-visible{outline:2px solid var(--text-muted);outline-offset:3px;border-radius:2px;color:var(--text-primary)}.m-entry-caret{flex:0 0 auto;width:.75rem;height:.5rem}@media (prefers-reduced-motion:reduce){.m-entry-peek,.m-entry-peek:after{transition:none}}.m-entry-accent,.m-entry-copy a{color:var(--text-primary)}.m-entry-copy a{text-decoration:underline;-webkit-text-decoration-color:transparent;text-decoration-color:transparent;text-underline-offset:.2em;transition:-webkit-text-decoration-color .15s ease;transition:text-decoration-color .15s ease;transition:text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}.m-entry-copy a:focus-visible,.m-entry-copy a:hover{-webkit-text-decoration-color:currentColor;text-decoration-color:currentColor}.m-rail-wrap{--m-rail-fade:2.5rem;--m-rail-wash-right:linear-gradient(90deg,transparent 0,rgba(0,0,0,0.074) 16.7%,rgba(0,0,0,0.259) 33.3%,rgba(0,0,0,0.5) 50%,rgba(0,0,0,0.741) 66.7%,rgba(0,0,0,0.926) 83.3%,#000);--m-rail-wash-left:linear-gradient(270deg,transparent 0,rgba(0,0,0,0.074) 16.7%,rgba(0,0,0,0.259) 33.3%,rgba(0,0,0,0.5) 50%,rgba(0,0,0,0.741) 66.7%,rgba(0,0,0,0.926) 83.3%,#000);position:relative;margin-top:.9375rem}.m-rail-wrap:after,.m-rail-wrap:before{content:"";position:absolute;top:0;bottom:0;width:var(--m-rail-fade);z-index:1;background:var(--background-color);opacity:0;pointer-events:none;transition:opacity .22s ease}.m-rail-wrap:before{left:0;-webkit-mask-image:var(--m-rail-wash-left);mask-image:var(--m-rail-wash-left)}.m-rail-wrap:after{right:0;-webkit-mask-image:var(--m-rail-wash-right);mask-image:var(--m-rail-wash-right)}.m-rail-wrap[data-more-left]:before,.m-rail-wrap[data-more-right]:after{opacity:1}.m-rail{--m-rail-height:12.5rem;display:flex;gap:.375rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--m-rail-fade);scrollbar-width:none}.m-rail::-webkit-scrollbar{width:0;height:0}@media (max-width:30rem){.m-rail{--m-rail-height:10rem}}.m-rail-item{flex:0 0 auto;aspect-ratio:3/2;height:var(--m-rail-height);padding:0;border:0;border-radius:var(--m-media-radius);overflow:hidden;background:var(--placeholder-bg);scroll-snap-align:start;cursor:zoom-in;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:opacity .2s ease}.m-rail-item :is(img,video){display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (hover:hover){.m-rail-item:hover{opacity:.82}}.m-rail-item:focus-visible{outline:2px solid var(--text-muted);outline-offset:3px}.m-rail-item[data-standin]{opacity:0;transition:none}.m-rail-embed{cursor:auto}@media (hover:hover){.m-rail-embed:hover{opacity:1}}.m-lb{--m-lb-pad-y:clamp(1rem,4vh,3rem);--m-lb-pad-x:clamp(1rem,4vw,3rem);--m-lb-gap:1.25rem;--m-lb-bar:2.75rem;--m-lb-bar-inset:calc(var(--m-safe-bottom) + clamp(0.75rem, 2.5vh, 1.75rem));--m-lb-pad-top:calc(var(--m-safe-top) + var(--m-lb-pad-y));--m-lb-bottom:calc(var(--m-safe-bottom) + var(--m-lb-pad-y));--m-lb-max-w:min(78rem,calc(100vw - 2 * max(var(--m-lb-pad-x), var(--m-safe-x))));--m-lb-max-h:calc(100dvh - var(--m-lb-pad-top) - var(--m-lb-bottom));position:fixed;inset:0;z-index:1300;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--m-lb-pad-top) max(var(--m-lb-pad-x),var(--m-safe-x)) var(--m-lb-bottom);cursor:zoom-out}.m-lb:has(.m-lb-nav){--m-lb-bottom:calc(var(--m-lb-bar-inset) + var(--m-lb-bar) + var(--m-lb-gap))}.m-lb:focus{outline:none}.m-lb-scrim{position:absolute;inset:0;background:var(--m-scrim);backdrop-filter:blur(20px) saturate(.85);-webkit-backdrop-filter:blur(20px) saturate(.85);opacity:0;pointer-events:none;transition:opacity .32s ease-out}.m-lb[data-shown=true] .m-lb-scrim{opacity:1}.m-lb-frame{position:relative;display:flex;min-height:0;cursor:default}.m-lb-image{display:block;width:auto;height:auto;max-width:var(--m-lb-max-w);max-height:var(--m-lb-max-h);border-radius:var(--m-media-radius);box-shadow:0 24px 70px rgba(0,0,0,.45);-webkit-user-select:none;-moz-user-select:none;user-select:none}video.m-lb-image{width:min(var(--m-lb-max-w),calc(var(--m-lb-max-h) * var(--m-lb-ratio)));aspect-ratio:var(--m-lb-ratio)}.m-lb-nav{--m-lb-ink:rgba(255,255,255,0.72);position:absolute;left:0;right:0;bottom:var(--m-lb-bar-inset);height:var(--m-lb-bar);display:flex;align-items:center;justify-content:center;gap:.75rem;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .26s ease-out,transform .26s cubic-bezier(.33,0,.2,1)}.m-lb[data-shown=true] .m-lb-nav{opacity:1;transform:none}.m-lb-arrow{display:flex;align-items:center;justify-content:center;width:var(--m-lb-bar);height:var(--m-lb-bar);padding:0;pointer-events:auto;border:0;border-radius:50%;background:transparent;color:var(--m-lb-ink);cursor:pointer;transition:color .15s ease,background .15s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media (hover:hover){.m-lb-arrow:hover{color:#fff;background:rgba(255,255,255,.12)}}.m-lb-arrow:active{color:#fff;transition:none}.m-lb-arrow:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:2px;color:#fff}.m-lb-chevron{display:block;width:.625rem;height:1rem}.m-lb-edge{position:absolute;top:0;bottom:0;width:clamp(3.5rem,22%,9rem);max-width:45%;padding:0;border:0;background:transparent;cursor:pointer;transition:background .18s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.m-lb-edge[data-side=prev]{left:0;border-radius:var(--m-media-radius) 0 0 var(--m-media-radius)}.m-lb-edge[data-side=next]{right:0;border-radius:0 var(--m-media-radius) var(--m-media-radius) 0}@media (hover:hover){.m-lb-edge[data-side=prev]:hover{background:linear-gradient(90deg,rgba(0,0,0,.22),rgba(0,0,0,0))}.m-lb-edge[data-side=next]:hover{background:linear-gradient(270deg,rgba(0,0,0,.22),rgba(0,0,0,0))}}.m-lb-edge[data-side=prev]:active{background:linear-gradient(90deg,rgba(0,0,0,.24),rgba(0,0,0,0));transition:none}.m-lb-edge[data-side=next]:active{background:linear-gradient(270deg,rgba(0,0,0,.24),rgba(0,0,0,0));transition:none}@media (prefers-reduced-motion:reduce){.m-lb-nav{transform:none}}.m-page-wide{max-width:76rem}main:has(>.m-page){margin-top:0}.m-thumb{position:relative;width:100%;aspect-ratio:4/3;margin-bottom:var(--m-head-gap);touch-action:pinch-zoom}@media (prefers-reduced-motion:reduce){.m-thumb{touch-action:auto}}.m-thumb canvas{position:absolute;inset:0;display:block;width:100%;height:100%}.ascii-intro,.m-thumb-reveal{pointer-events:none}.ascii-intro{display:none;position:fixed;inset:0;z-index:1200}html:is([data-intro=pending],[data-intro=running]) .ascii-intro{display:block}html:is([data-intro=pending],[data-intro=running]) .m-page>:not(.m-thumb){opacity:0;transform:translate3d(0,6px,0)}html:is([data-intro=pending],[data-intro=running]) .m-thumb{opacity:0}html[data-intro=done] .m-thumb{opacity:1}html[data-intro=done] .m-page>:not(.m-thumb){opacity:1;transform:none;transition:opacity .5s cubic-bezier(.33,0,.2,1),transform .5s cubic-bezier(.33,0,.2,1)}@supports ((-webkit-mask-composite:source-in,xor) or (mask-composite:intersect)){.m-page:after,.m-page:before{-webkit-mask-repeat:no-repeat,repeat;mask-repeat:no-repeat,repeat;-webkit-mask-size:100% 100%,var(--m-dither-size);mask-size:100% 100%,var(--m-dither-size);-webkit-mask-composite:source-in,xor;mask-composite:intersect}.m-page:before{-webkit-mask-image:var(--m-page-mask-top),var(--m-dither);mask-image:var(--m-page-mask-top),var(--m-dither)}.m-page:after{-webkit-mask-image:var(--m-page-mask-bottom),var(--m-dither);mask-image:var(--m-page-mask-bottom),var(--m-dither)}}