@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/ibm-plex-mono-cyrillic-ext-300-normal.BbtBtHoB.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-300-normal.B8O3uHbr.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/ibm-plex-mono-cyrillic-300-normal.ByB2hQUF.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-300-normal.Ba-HN6uq.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/ibm-plex-mono-vietnamese-300-normal.CpdbWO_2.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-300-normal.B6fSpYYV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/ibm-plex-mono-latin-ext-300-normal.BEtQ2wm2.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-300-normal.CQbCaAQ4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/ibm-plex-mono-latin-300-normal.BRS-C4KA.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-300-normal.BPU54Tw3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-italic.CBjNughH.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-italic.B4oTjJdl.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-italic.CBJ8pzag.woff2)format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-italic.2syK4fUT.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-italic.DRuN92E5.woff2)format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-italic.D6eaYXMU.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-italic.B7_fu1kp.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-italic.Bg0ZHwF4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-italic.BqAiT5Ww.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-italic.66oory27.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-normal.Czsa-EzN.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-normal.C-3rgBeH.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-normal.CCVVNp6i.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-italic.xAqemagA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-italic.DFS986qL.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-italic.Bxi8ein9.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#edeff0;--ink:#15191e;--ink-2:#4a535d;--ink-3:#7f8892;--rule:#d3d8dc;--storm:#355877;--band:#a5683a;--code-bg:#e3e7ea;--select:#c9d6e3;--hero-fade:0;--on-photo:#ece7dc;--on-photo-shade:#0000008c;--font-mono:"Bale Mono", "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-serif:"Newsreader Variable", "Newsreader", "Iowan Old Style", Georgia, serif;--step--1:.8125rem;--step-0:.875rem;--step-1:1.1875rem;--step-2:1.375rem;--step-3:1.75rem;--gutter:clamp(16px, 4vw, 48px);--aside:8.5rem;--measure:42rem;--gap:2.5rem;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#000;--ink:#e7e2d8;--ink-2:#a9a69f;--ink-3:#6f7277;--rule:#25282c;--storm:#a3bbd2;--band:#d29a6b;--code-bg:#111417;--select:#2a3a4a;--hero-fade:1;color-scheme:dark}}:root[data-theme=dark]{--paper:#000;--ink:#e7e2d8;--ink-2:#a9a69f;--ink-3:#6f7277;--rule:#25282c;--storm:#a3bbd2;--band:#d29a6b;--code-bg:#111417;--select:#2a3a4a;--hero-fade:1;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:var(--step-0);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-weight:400;line-height:1.6}::selection{background:var(--select)}img,canvas,video{max-width:100%;display:block}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--storm);outline-offset:3px;border-radius:2px}[hidden]{display:none!important}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{left:var(--gutter);background:var(--ink);color:var(--paper);z-index:10;padding:.25rem .5rem;position:absolute;top:-3rem}.skip:focus{top:.5rem}.site-header{padding:calc(1.25rem + env(safe-area-inset-top,0px)) var(--gutter) 1.25rem;max-width:calc(var(--aside) + var(--gap) + var(--measure) + 2 * var(--gutter) + 8rem);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 2rem;margin-inline:auto;display:flex}.site-name{letter-spacing:-.005em;font-weight:500}.site-header nav ul{align-items:center;gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.site-header nav a{color:var(--ink-2)}.site-header nav a:hover,.site-header nav a[aria-current=page]{color:var(--ink)}.theme-icon{color:var(--ink-3);cursor:pointer;background:0 0;border:0;margin:-.25rem;padding:.25rem;display:flex}.theme-icon:hover{color:var(--ink)}.theme-icon .half,.theme-icon .full{opacity:0}.theme-icon:not([data-state=light],[data-state=dark]) .half,.theme-icon[data-state=dark] .full{opacity:1}.site-header nav a[aria-current=page]{text-underline-offset:.3em;text-decoration:underline 1px}.hero{color:#ece7dc;touch-action:pan-y;isolation:isolate;--fade-height:clamp(5rem, 14svh, 9rem);background:#000;height:clamp(60svh,45.4545vw,88svh);min-height:22rem;position:relative;overflow:hidden}.hero-still,.hero-canvas{width:100%;max-width:none;height:100%;position:absolute;inset:0}.hero-still{object-fit:cover}.hero-canvas{opacity:0;transition:opacity .8s}.hero.is-live .hero-canvas{opacity:1}.hero-scrim{pointer-events:none;background:linear-gradient(#0000008c,#0000 7rem),linear-gradient(0deg,#00000080,#00000040 8rem,#0000 16rem);position:absolute;inset:0}.hero-fade{height:calc(var(--fade-height) * var(--hero-fade));z-index:1;pointer-events:none;position:absolute;inset:auto 0 0}.hero-fade span,.hero-fade:after{content:"";position:absolute;inset:0}.hero-fade span:first-child{-webkit-backdrop-filter:blur(2px);mask-image:linear-gradient(#0000,#000 35%)}.hero-fade span:nth-child(2){-webkit-backdrop-filter:blur(6px);mask-image:linear-gradient(#0000 25%,#000 65%)}.hero-fade span:nth-child(3){-webkit-backdrop-filter:blur(16px);mask-image:linear-gradient(#0000 50%,#000 90%)}.hero-fade:after{background:linear-gradient(to bottom, transparent 10%, color-mix(in srgb, var(--paper) 55%, transparent) 55%, var(--paper))}.hero-bottom{z-index:2;padding:0 var(--gutter) calc(1rem + env(safe-area-inset-bottom,0px));pointer-events:none;gap:2rem;display:grid;position:absolute;inset:auto 0 0}.hero-hello{text-shadow:0 1px 16px #000000a6}.hero-hello h1{letter-spacing:-.02em;margin:0;font-size:clamp(1.75rem,4vw,3.25rem);font-weight:400;line-height:1.15}.hello-lead{color:#ece7dcc7}.hello-name{white-space:nowrap}.hello-caret{vertical-align:-.14em;background:currentColor;width:.55em;height:.95em;margin-left:.06em;animation:1.06s step-end infinite caret-blink;display:inline-block}.hello-name.is-typing .hello-caret{animation:none}@keyframes caret-blink{50%{opacity:0}}.hello-sub{font-size:var(--step-1);color:#ece7dcb8;margin:.6rem 0 0}.hero .site-header{z-index:2;max-width:none;margin:0;position:relative}.hero .site-header nav a{color:#ece7dcb8}.hero .site-header nav a:hover,.hero .theme-icon:hover{color:#ece7dc}.hero .theme-icon{color:#ece7dcb8;filter:drop-shadow(0 1px 6px #0009)}.hero .site-name,.hero .site-header nav a{text-shadow:0 1px 12px #0009}.hero-foot{font-size:var(--step--1);color:#ece7dcb3;text-shadow:0 1px 10px #000000b3;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:.25rem 2rem;display:flex}.hero-foot p{margin:0}.hero-foot a{pointer-events:auto;color:#ece7dcb3}.hero-foot a:hover{color:#ece7dc}.hero-credit{text-align:right;justify-items:end;gap:.2rem;line-height:1.35;display:grid}.hero-hint{transition:opacity .6s}.hero-actions{justify-items:start;gap:.2rem;display:grid}.hero-full{font:inherit;color:#ece7dcb3;cursor:pointer;pointer-events:auto;text-underline-offset:.3em;background:0 0;border:0;padding:0;text-decoration:underline 1px #ece7dc59;display:none}.hero.is-live .hero-full{display:block}.hero-full:hover{color:#ece7dc}.hero.is-full{z-index:100;touch-action:none;height:auto;min-height:0;position:fixed;inset:0}.hero.is-full :is(.site-header,.hero-hello,.hero-fade,.hero-hint){display:none}.hero.is-full .hero-scrim{background:linear-gradient(0deg,#00000073,#0000 8rem)}html.jupiter-full{overflow:hidden}.hero.is-touched .hero-hint,.hero.is-still .hero-hint{opacity:0}.hint-touch{display:none}@media (hover:none){.hint-pointer{display:none}.hint-touch{display:inline}}.sheet{max-width:calc(var(--aside) + var(--gap) + var(--measure) + 2 * var(--gutter) + 8rem);padding:0 var(--gutter) 4rem;margin-inline:auto}.row{grid-template-columns:var(--aside) minmax(0, var(--measure));column-gap:var(--gap);align-items:baseline;display:grid}.row>*{min-width:0}.section{margin-top:4.5rem}.section-head{font-size:var(--step-0);color:var(--ink-3);margin:0 0 1.25rem;font-weight:400}.section-head>:last-child{grid-column:2}.section-more{margin:1.25rem 0 0}.section-more a,.backlink{color:var(--ink-2);border-bottom:1px solid var(--rule)}.section-more a:hover,.backlink:hover{color:var(--ink);border-color:var(--ink-3)}.intro{margin-top:3.5rem}.intro-text{font-family:var(--font-serif);font-size:var(--step-2);letter-spacing:-.003em;font-optical-sizing:auto;line-height:1.45}.intro-text p{text-wrap:pretty;margin:0 0 .85em}.intro-text p:last-child{margin-bottom:0}.intro-text a,.prose a,.entry-note a{color:var(--storm);text-underline-offset:.18em;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, var(--storm) 45%, transparent)}.intro-text a:hover,.prose a:hover{text-decoration-color:var(--storm)}.lens{flex-direction:column;align-items:flex-start;gap:.15rem;padding-top:.35rem;display:flex}.lens button{font:inherit;color:var(--ink-3);cursor:pointer;background:0 0;border:0;padding:0}.lens button:hover,.lens button[aria-pressed=true]{color:var(--ink)}.lens button[aria-pressed=true]:before{content:"→ ";color:var(--band)}.lens button[aria-pressed=false]:before{content:"  "}html[data-lens=engineering] [data-only=personal],html[data-lens=personal] [data-only=engineering]{display:none}.entries{row-gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.entry-when{color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}.entry-title{color:var(--ink)}a.entry-title{text-underline-offset:.3em;text-decoration:underline 1px;text-decoration-color:var(--rule)}a.entry-title:hover{text-decoration-color:var(--ink-2)}.entry-at{color:var(--ink-2)}.entry-note{font-family:var(--font-serif);color:var(--ink-2);text-wrap:pretty;margin-top:.1rem;font-size:1.0625rem;line-height:1.45;display:block}.entry-meta{color:var(--ink-3);white-space:nowrap}.entry-line{justify-content:space-between;gap:1rem;display:flex}.status{color:var(--band);white-space:nowrap}.status:before{content:"● ";vertical-align:.15em;font-size:.7em}.year-group+.year-group{margin-top:2.5rem}.page-head{margin-top:3rem}.page-head h1{font-size:var(--step-3);letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:400;line-height:1.2}.page-lede{font-family:var(--font-serif);font-size:var(--step-2);color:var(--ink-2);text-wrap:pretty;margin:.75rem 0 0;line-height:1.4}.meta-list{color:var(--ink-3);flex-wrap:wrap;gap:.25rem 1.5rem;margin:1.25rem 0 0;padding:0;list-style:none;display:flex}.meta-list a{color:var(--ink-2);border-bottom:1px solid var(--rule)}.meta-list a:hover{color:var(--ink)}.page-aside{color:var(--ink-3);font-variant-numeric:tabular-nums;padding-top:.55rem}.page-body{margin-top:2.5rem}.pager{border-top:1px solid var(--rule);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem;margin-top:4rem;padding-top:1.25rem;display:flex}.pager a{color:var(--ink-2)}.pager a:hover{color:var(--ink)}.film-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:1rem;margin-top:2.5rem;display:grid}.film-grid figure{margin:0}.film-grid img{width:100%;height:auto}.film-grid figcaption{color:var(--ink-3);font-size:var(--step--1);margin-top:.4rem}.log-month{align-items:start}.log-month+.log-month{margin-top:2.5rem}.log-month-name{font-size:var(--step-0);color:var(--ink-3);margin:0 0 .75rem;font-weight:400}.log-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.log-tile{background:var(--code-bg);color:var(--on-photo);display:block;position:relative;overflow:hidden}.log-tile img{aspect-ratio:3/4;object-fit:cover;width:100%;height:auto}.log-tile-date,.log-tile-note{z-index:1;position:absolute;left:.6rem;right:.6rem}.log-tile-date{font-size:var(--step--1);text-shadow:0 1px 8px var(--on-photo-shade);bottom:.4rem}.log-tile-note{font-family:var(--font-serif);font-size:var(--step-0);-webkit-line-clamp:5;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;bottom:1.9rem;overflow:hidden}.log-tile:after{content:"";background:linear-gradient(to top, var(--on-photo-shade), #0000);position:absolute;inset:35% 0 0}.log-tile-note,.log-tile:after{opacity:0}@media (hover:hover){.log-tile:hover .log-tile-note,.log-tile:hover:after,.log-tile:focus-visible .log-tile-note,.log-tile:focus-visible:after{opacity:1}}.log-tile.is-text{aspect-ratio:3/4;border:1px solid var(--rule);color:var(--ink-2);background:0 0}.log-tile.is-text:hover{border-color:var(--ink-3)}.log-tile.is-text:after{content:none}.log-tile.is-text .log-tile-note{-webkit-line-clamp:8;opacity:1;top:.5rem;bottom:auto}.log-tile.is-text .log-tile-date{color:var(--ink-3);text-shadow:none}.log-day{align-items:start;row-gap:.75rem}.log-day .page-aside{padding-top:0}.log-day-photo{object-fit:contain;object-position:left top;width:100%;height:auto;max-height:85svh}.log-day-photo+.log-day-note{margin-top:1.5rem}.site-footer{max-width:calc(var(--aside) + var(--gap) + var(--measure) + 2 * var(--gutter) + 8rem);padding:2rem var(--gutter) calc(2.5rem + env(safe-area-inset-bottom,0px));color:var(--ink-3);margin:0 auto}.site-footer .row{border-top:1px solid var(--rule);row-gap:.75rem;padding-top:1.25rem}.site-footer ul{flex-wrap:wrap;gap:.25rem 1.5rem;margin:0;padding:0;list-style:none;display:flex}.site-footer a{color:var(--ink-2)}.site-footer a:hover{color:var(--ink)}.site-footer p{margin:0}.footer-meta{flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;display:flex;margin-top:1.5rem!important}.theme-switch{font:inherit;color:var(--ink-2);cursor:pointer;background:0 0;border:0;padding:0}.theme-switch:hover{color:var(--ink)}.copy-email{font:inherit;color:var(--ink-3);cursor:pointer;background:0 0;border:0;padding:0 0 0 .75rem}.copy-email:hover{color:var(--ink)}@media (width<=760px){:root{--gap:1rem}.row{grid-template-columns:minmax(0,1fr)}.section-head>:last-child{grid-column:1}.section-head>:first-child:empty{display:none}.entry{row-gap:.1rem}.entry-when{font-size:var(--step--1)}.lens{flex-direction:row;gap:1.25rem;padding:0 0 1rem}.page-aside{padding-top:0}.intro-text{font-size:1.25rem}.site-header nav ul{gap:1.1rem}.hero-credit{text-align:left;justify-items:start}.hello-name{display:block}.hello-sub{display:none}.hero-bottom{gap:1.25rem}.hero-credit [data-jupiter-distance]{display:none}.log-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.prose{font-family:var(--font-serif);font-size:var(--step-1);font-optical-sizing:auto;color:var(--ink);line-height:1.6}.prose>*{margin:0 0 1em}.prose>:last-child{margin-bottom:0}.prose p,.prose li{text-wrap:pretty;hanging-punctuation:first}.prose h2,.prose h3,.prose h4{font-family:var(--font-mono);letter-spacing:-.01em;text-wrap:balance;margin:2.2em 0 .7em;font-weight:500;line-height:1.3}.prose h2{font-size:1.0625rem}.prose h3{font-size:var(--step-0)}.prose h4{font-size:var(--step-0);color:var(--ink-2);font-weight:400}.prose h2+*,.prose h3+*{margin-top:0}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.25em 0}.prose li::marker{color:var(--ink-3);font-family:var(--font-mono);font-size:.85em}.prose strong{font-weight:600}.prose em{font-style:italic}.prose blockquote{border-left:1px solid var(--ink-3);color:var(--ink-2);margin-left:0;padding-left:1.1rem}.prose hr{border:0;border-top:1px solid var(--rule);margin:2.5em 0}.prose code{font-family:var(--font-mono);background:var(--code-bg);border-radius:3px;padding:.1em .3em;font-size:.82em}.prose pre{font-family:var(--font-mono);tab-size:2;border-radius:4px;padding:1rem 1.1rem;font-size:.8125rem;line-height:1.55;overflow-x:auto;background:var(--code-bg)!important}.prose pre code{font-size:inherit;background:0 0;padding:0}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important}}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important}.prose .table-wrap,.prose table{max-width:100%;display:block;overflow-x:auto}.prose table{border-collapse:collapse;font-family:var(--font-mono);font-size:var(--step-0);font-variant-numeric:tabular-nums;line-height:1.5}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:.4rem 1.5rem .4rem 0}.prose th{color:var(--ink-2);font-weight:500}.prose img{height:auto;margin-inline:auto}.prose figure{margin:2em 0}.prose figcaption,.prose img+em{font-family:var(--font-mono);font-style:normal;font-size:var(--step--1);color:var(--ink-3);margin-top:.5rem;display:block}.prose math{font-size:1.05em}.prose math[display=block]{margin:1.2em 0;overflow:auto hidden}.prose .katex-display{overflow:auto hidden}.prose .callout{border-left:2px solid var(--band);color:var(--ink);padding:.1rem 0 .1rem 1.1rem}.prose .callout-title{font-family:var(--font-mono);font-size:var(--step-0);color:var(--ink-2);margin-bottom:.35rem}.prose .footnotes{border-top:1px solid var(--rule);color:var(--ink-2);margin-top:3em;padding-top:1em;font-size:.95rem}.prose .footnotes h2{font-size:var(--step-0);color:var(--ink-3);margin-top:0;font-weight:400}.prose sup a,.prose .footnote-ref a{font-family:var(--font-mono);font-size:.75em;text-decoration:none}
