@font-face{font-family:mono;src:url(../media/jetbrains_mono_latin_wght_normal-s.p.2rmhnsrc80fag.woff2?dpl=dpl_F8GNueku3guYDSSjjMYRXyUVARg3)format("woff2");font-display:swap;font-weight:100 800;font-style:normal}@font-face{font-family:mono;src:url(../media/jetbrains_mono_latin_wght_italic-s.p.1_22wtrrft20j.woff2?dpl=dpl_F8GNueku3guYDSSjjMYRXyUVARg3)format("woff2");font-display:swap;font-weight:100 800;font-style:italic}@font-face{font-family:mono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.mono_74f242b2-module__0ZjJAa__className{font-family:mono,mono Fallback}.mono_74f242b2-module__0ZjJAa__variable{--font-mono:"mono", "mono Fallback"}
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--desk:#0f0f11;--bg:#16161a;--bg-2:#242428;--tx:#c3c3c4;--tx-2:#959597;--tx-3:#7d8391;--ui:#242428;--ui-2:#4c4c50;--ac:#61aeee;--brand:#3551f3;--green:#98c379;--yellow:#e6c07b;--red:#e06c75;--mono:var(--font-mono), ui-monospace, "JetBrains Mono", "SF Mono", Menlo, monospace;--step--1:clamp(.78rem, .745rem + .17vw, .875rem);--step-0:clamp(.92rem, .885rem + .19vw, 1.03rem);--step-1:clamp(1.05rem, .99rem + .3vw, 1.22rem);--step-4:clamp(1.42rem, 1.2rem + 1.1vw, 2.05rem);--step-6:clamp(1.62rem, 1.18rem + 2.2vw, 2.85rem);--ease-out:cubic-bezier(.19, 1, .22, 1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--desk);color:var(--tx);font-family:var(--mono);font-size:var(--step-0);margin:0;padding:clamp(.5rem,2vw,1.5rem);font-weight:400;line-height:1.7}.term{background:var(--bg);border:1px solid var(--bg-2);border-radius:10px;flex-direction:column;max-width:54rem;min-height:calc(100dvh - clamp(1rem,4vw,3rem));margin:0 auto;display:flex;overflow:clip}.titlebar{background:#303030;border-bottom:1px solid #0000005c;align-items:center;gap:.65rem;padding:.55rem .8rem;display:flex}.titlebar .title{text-align:left;font-size:var(--step--1);color:#c3c3c4;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:700;overflow:hidden}@media (min-width:40rem){.titlebar .title{text-align:center;padding-left:5.5rem}}.titlebar .wbtn{color:#c3c3c4;cursor:default;background:#ffffff14;border:0;border-radius:50%;place-items:center;width:24px;height:24px;padding:0;font-family:inherit;font-size:11px;line-height:1;display:grid}@media (hover:hover){.titlebar .wbtn:hover{background:#ffffff2b}.titlebar .wbtn.close:hover{color:var(--red)}}.titlebar .wbtn:active{background:#ffffff38}[data-win=min] .term main,[data-win=min] .term .masthead{display:none}[data-win=min] .term{min-height:0}[data-win=min] .site-footer{border-top:0;padding-block:.9rem 1rem}[data-win=min] .site-footer nav{margin-bottom:0}[data-win=min] .site-footer .colophon{display:none}[data-win=max] body{padding:0}[data-win=max] .term{border-color:#0000;border-radius:0;max-width:none;min-height:100dvh}.kill{z-index:50;background:var(--desk);padding:max(1.5rem, env(safe-area-inset-left));font-size:var(--step--1);color:var(--tx-2);line-height:1.8;position:fixed;inset:0}.kill p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.kill p:first-child{color:var(--tx)}.kill p.ok{color:var(--green)}.kill p.hint{color:var(--tx-3);margin-top:.6rem}.kill .u{color:var(--green)}.kill .pp{color:var(--ac)}.kill .cur{background:var(--tx);vertical-align:text-bottom;width:.55ch;height:1em;margin-left:.15ch;display:inline-block}@media (prefers-reduced-motion:no-preference){.kill .cur{animation:1.2s step-end infinite blink}}.statusbar{background:var(--bg-2);border-top:1px solid var(--ui);font-size:var(--step--1);color:var(--tx-2);font-variant-numeric:tabular-nums;justify-content:space-between;gap:1rem;margin-top:auto;padding:.4rem 1rem;display:flex;position:sticky;bottom:0}.statusbar .mode{color:var(--green)}.container{width:100%;max-width:46rem;padding-inline:max(1.375rem, env(safe-area-inset-left), env(safe-area-inset-right));margin:0 auto}::selection{background:var(--brand);color:#fff}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty;margin:0 0 1rem}a{color:var(--ac);text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-underline-offset:.22em}@media (hover:hover){a{transition:text-decoration-color .18s,color .18s}a:hover{text-decoration-color:currentColor}}em{color:var(--yellow);font-style:italic}.prompt{font-size:var(--step-0);color:var(--tx-3);margin:0 0 1.1rem}.prompt .u{color:var(--green)}.prompt .p{color:var(--ac)}.prompt .c{color:var(--tx-2)}.masthead{justify-content:space-between;align-items:baseline;gap:1rem;padding-block:1.6rem 0;display:flex}.masthead .name{color:var(--tx);letter-spacing:-.01em;font-weight:700;text-decoration:none}.masthead .stamp{font-size:var(--step--1);color:var(--tx-3)}main{padding-block:3.5rem 3rem}.site-footer{border-top:1px solid var(--ui);font-size:var(--step--1);color:var(--tx-2);padding-block:1.5rem 2.5rem}.site-footer nav{flex-wrap:wrap;gap:.35rem 1.4rem;margin-bottom:1.1rem;display:flex}.site-footer .colophon{color:var(--tx-3);max-width:36rem;margin:0}.display{font-family:var(--mono);font-weight:700;font-size:var(--step-6);letter-spacing:-.02em;color:#e8e8ea;margin:0 0 2rem;line-height:1.15}.bio p{max-width:40rem}.bio .skills{font-size:var(--step--1);color:var(--tx-3);flex-wrap:wrap;gap:.3rem 1ch;margin:0 0 1rem;padding:0;list-style:none;display:flex}.bio .skills li+li:before{content:"·";margin-right:1ch}.label{font-size:var(--step-0);color:var(--tx-3);align-items:center;gap:.9rem;margin:3.6rem 0 .4rem;font-weight:400;display:flex}.label .u{color:var(--green)}.label .p{color:var(--ac)}.label:after{content:"";border-top:1px solid var(--ui);flex:1}ul.index{margin:0;padding:0;list-style:none}ul.index>li{padding-block:1.3rem 1.4rem}ul.index>li+li{border-top:1px solid var(--ui)}.entry-head{align-items:baseline;gap:1rem;display:flex}.entry-head .num{font-size:var(--step--1);color:var(--tx-3);margin-right:.5rem}.entry-head .title{font-size:var(--step-1);letter-spacing:-.01em;font-weight:700}span.title{color:#e8e8ea}.entry-head .year{font-size:var(--step--1);color:var(--yellow);margin-left:auto}ul.index p{color:var(--tx-2);max-width:38rem;margin:.45rem 0 .55rem}.meta{font-size:var(--step--1);color:var(--tx-3);margin:0}.meta a{color:var(--tx-2)}.back{font-size:var(--step--1);color:var(--tx-2);text-decoration:none}.case h1{font-weight:700;font-size:var(--step-4);letter-spacing:-.015em;color:#e8e8ea;margin:2rem 0 .6rem;line-height:1.15}.case .meta{margin-bottom:2.4rem}.case .lede{font-size:var(--step-1);color:var(--tx);max-width:40rem;line-height:1.6}.case section{border-top:1px solid var(--ui);margin-top:2.4rem;padding-top:1.8rem}.case h2{font-size:var(--step-1);letter-spacing:-.01em;color:#e8e8ea;margin:0 0 1rem;font-weight:700}.case h2:before{content:"## " / "";color:var(--tx-3);font-weight:400}.case ul{margin:0 0 1rem;padding-left:1.3rem;list-style:none}.case li{text-wrap:pretty;margin-bottom:.5rem;position:relative}.case li:before{content:"-" / "";color:var(--tx-3);position:absolute;left:-1.3rem}table.data{border-collapse:collapse;width:100%;font-size:var(--step--1);margin:.5rem 0 .75rem}table.data td{border-top:1px solid var(--ui);vertical-align:baseline;padding:.55rem 0}table.data td.n{width:6.5ch;color:var(--yellow);white-space:nowrap;padding-right:1.25rem;font-weight:700}table.data td.d{color:var(--tx-2)}figure.shot{border:1px solid var(--ui-2);border-radius:6px;margin:2.4rem 0 0;padding:4px}figure.shot .frame{background:var(--bg-2);aspect-ratio:16/10;border-radius:3px;place-items:center;display:grid}figure.shot .frame span{font-size:var(--step--1);color:var(--tx-3);text-align:center;padding-inline:1.5rem}figure.shot img{border-radius:3px;width:100%;height:auto;display:block}figure.shot .shot-open{cursor:zoom-in;background:0 0;border:0;border-radius:3px;width:100%;padding:0;display:block}figure.shot figcaption{font-size:var(--step--1);color:var(--tx-3);padding:.6rem .35rem .35rem}figure.shot .zoom-hint{color:var(--tx-3)}@media (hover:hover){figure.shot .zoom-hint{opacity:0;transition:opacity .15s}figure.shot:hover .zoom-hint{opacity:1}}dialog.shotbox{border:1px solid var(--ui-2);background:var(--bg);overscroll-behavior:contain;border-radius:6px;max-width:calc(100vw - 1.5rem);max-height:calc(100dvh - 1.5rem);margin:auto;padding:4px;overflow:auto}dialog.shotbox::backdrop{background:#000000b8}.shotbox-img{cursor:zoom-in;background:0 0;border:0;padding:0;display:block}.shotbox-img img{border-radius:3px;width:auto;max-width:calc(100vw - 2rem);height:auto;max-height:calc(100dvh - 4.5rem);display:block}.shotbox-img.zoomed{cursor:zoom-out}.shotbox-img.zoomed img{max-width:none;max-height:none}.shotbox-bar{font-size:var(--step--1);color:var(--tx-3);background:var(--bg);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.2rem 1.5rem;margin:0;padding:.55rem .35rem .2rem;display:flex;position:sticky;bottom:0;left:0}.shotbox-caption{min-width:0}.shotbox-keys{white-space:nowrap;margin-left:auto}.key-hint{display:none}@media (hover:hover){.key-hint{display:inline}}.shotbox-close{font:inherit;color:var(--tx-2);cursor:pointer;background:0 0;border:0;padding:0}.journey{display:none}@media (hover:hover){ul.index>li{transition:opacity .25s}ul.index:hover>li:not(:hover){opacity:.45}}.clock{color:var(--tx-2)}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}::view-transition-old(root){animation-duration:.18s}::view-transition-new(root){animation-duration:.18s}@keyframes enter{0%{opacity:0;transform:translateY(10px)}}.enter{animation:enter .55s var(--ease-out) both;animation-delay:calc(var(--i,0) * 55ms)}@keyframes blink{50%{opacity:0}}.caret:after{content:"";background:var(--tx);width:.5ch;height:.95em;margin-left:.28ch;animation:1.2s step-end infinite blink;display:inline-block;transform:translateY(.12em)}@supports (animation-timeline:scroll()){.journey{inset-block:0;background:linear-gradient(to bottom, var(--brand), var(--bg-2));opacity:.7;transform-origin:top;pointer-events:none;z-index:5;width:1px;animation:linear both draw;animation-timeline:scroll(root);display:block;position:fixed;left:max(50vw - 28.4rem,.3rem);scale:1 0}@keyframes draw{to{scale:1}}}@supports (animation-timeline:view()){.reveal,.case section,.case figure.shot{animation:linear both rise;animation-timeline:view();animation-range:entry entry 45%}@keyframes rise{0%{transform:translateY(16px)}}}}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.retry{font:inherit;color:var(--ac);cursor:pointer;text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-decoration-color:color-mix(in srgb, currentColor 35%, transparent);text-underline-offset:.22em;background:0 0;border:0;padding:0}
