@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/roboto-mono-cyrillic-ext-700-normal-QbUcNKL2.woff2)format("woff2"),url(/assets/roboto-mono-cyrillic-ext-700-normal-BwPMcjzm.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/roboto-mono-cyrillic-700-normal-W223d9Po.woff2)format("woff2"),url(/assets/roboto-mono-cyrillic-700-normal-DeAhOgsV.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/roboto-mono-greek-700-normal-yjQVQa5h.woff2)format("woff2"),url(/assets/roboto-mono-greek-700-normal-BzcFAND_.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/roboto-mono-vietnamese-700-normal-BaE27ikz.woff2)format("woff2"),url(/assets/roboto-mono-vietnamese-700-normal-CPkDCjLi.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/roboto-mono-latin-ext-700-normal-B3oRrrRC.woff2)format("woff2"),url(/assets/roboto-mono-latin-ext-700-normal-Bq2Pp7ui.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:Roboto Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/roboto-mono-latin-700-normal-foxDnrFi.woff2)format("woff2"),url(/assets/roboto-mono-latin-700-normal-CHYrj1DZ.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}:root{--color-background:#f5f1e8;--color-text:#111;--color-muted:#555048;--color-card:#fdfbf6;--color-card-hover:#fff;--color-border:#111;--color-shadow:#111;--color-focus:#111;--color-timeline-line:#0000001f;--color-timeline-description:#737373;--font-display:Georgia, "Times New Roman", serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--font-card-title:"Roboto Mono", var(--font-mono);--font-size-name:clamp(1.5rem, 1vw + 1rem, 2rem);--font-size-card-title:calc(clamp(1.5rem, 1vw + 1rem, 2rem) * var(--card-scale));--font-size-intro:.85rem;--font-size-body:1rem;--font-size-small:.85rem;--content-max-width:1200px;--text-max-width:60ch;--page-padding:clamp(1.25rem, 5vw, 5rem);--section-spacing:clamp(3rem, 8vw, 7rem);--card-gap:clamp(1.25rem, 2.5vw, 2rem);--intro-to-cards-spacing:clamp(1.5rem, 3vw, 2.5rem);--card-scale:.65;--card-width:calc(40vw - var(--page-padding));--card-min-width:22rem;--card-padding-y:calc(clamp(1.25rem, 2.5vw, 2.25rem) * var(--card-scale));--card-padding-x:clamp(1.25rem, 2vw, 1.75rem);--border-width:1px;--border-radius:0;--shadow-offset:4px;--shadow-offset-hover:2px;--focus-outline-width:2px;--focus-outline-offset:4px;--color-bank:var(--color-text);--bank-line-width:1.5px;--color-dot-1:#366fc4;--color-dot-2:#5a9bd0;--color-dot-3:#88b9dc;--transition-fast:.12s ease-out}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-background);min-height:100vh;color:var(--color-text);font-family:var(--font-mono);font-size:var(--font-size-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}h1,h2,p{margin:0}a{color:inherit}:focus-visible{outline:var(--focus-outline-width) solid var(--color-focus);outline-offset:var(--focus-outline-offset)}.page{max-width:var(--content-max-width);padding:var(--section-spacing) var(--page-padding)}.river-canvas{isolation:isolate;--page-padding:3rem;--section-spacing:4rem;--font-size-name:2.125rem;--font-size-intro:1rem;--font-size-small:.875rem;--card-scale:.8;--font-size-card-title:calc(2rem * var(--card-scale));--card-width:calc(var(--canvas-width) * .4 - var(--page-padding));--card-gap:1.5rem;--intro-to-cards-spacing:2rem;--card-padding-y:calc(2.25rem * var(--card-scale));--card-padding-x:1.75rem;width:100%;min-height:100vh;margin-inline:0;position:relative}.river-canvas .intro{margin-top:1.75rem}.river-canvas .page{position:relative}.site-name{font-family:var(--font-display);font-size:var(--font-size-name);letter-spacing:-.01em;font-weight:400;line-height:1.05}.intro{max-width:var(--text-max-width);font-size:var(--font-size-intro);margin-top:clamp(1.5rem,3vw,2.5rem);line-height:1.7}.prose{max-width:var(--text-max-width);margin-top:var(--intro-to-cards-spacing);line-height:1.7}.prose p+p{margin-top:1em}.about{margin-top:var(--intro-to-cards-spacing);align-items:flex-start;gap:1.5rem;display:flex}.about .prose{max-width:28rem;margin-top:0}.about-photo{border:var(--border-width) solid var(--color-border);width:10rem;height:auto;box-shadow:var(--shadow-offset) var(--shadow-offset) 0 var(--color-shadow);flex:none;margin-top:.4rem}.page--centered{text-align:center;max-width:none}.page--centered .intro,.page--centered .prose{margin-inline:auto}.page--centered .site-name{text-wrap:balance;max-width:18em;margin-inline:auto}.page--centered .prose{text-align:left}.page-note{margin-top:var(--intro-to-cards-spacing);font-size:var(--font-size-small);color:var(--color-muted);font-style:italic}.back-link{top:1.5rem;left:var(--page-padding);font-size:var(--font-size-small);text-transform:uppercase;letter-spacing:.08em;text-decoration:none;position:absolute}.back-link:hover{text-underline-offset:.25em;text-decoration:underline}.card-list{gap:var(--card-gap);width:min(100%, max(var(--card-width), var(--card-min-width)));margin:var(--intro-to-cards-spacing) 0 0;padding:0;list-style:none;display:grid}.section-card{padding:var(--card-padding-y) var(--card-padding-x);background:var(--color-card);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-offset) var(--shadow-offset) 0 var(--color-shadow);transition:transform var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);grid-template-columns:auto 1fr;align-items:baseline;column-gap:.75rem;text-decoration:none;display:grid}.section-card:hover,.section-card:focus-visible{background:var(--color-card-hover);transform:translate(calc(var(--shadow-offset) - var(--shadow-offset-hover)), calc(var(--shadow-offset) - var(--shadow-offset-hover)));box-shadow:var(--shadow-offset-hover) var(--shadow-offset-hover) 0 var(--color-shadow)}.section-card:active{transform:translate(var(--shadow-offset), var(--shadow-offset));box-shadow:0 0 0 var(--color-shadow)}.section-card-index{font-size:var(--font-size-small);color:var(--color-muted);letter-spacing:.08em}.section-card-title{font-family:var(--font-card-title);font-size:var(--font-size-card-title);font-weight:700;line-height:1.15}.timeline{--timeline-gap:24px;--timeline-lead:64px;--timeline-marker-size:6px;--timeline-card-padding-y:14px;--timeline-card-padding-x:16px;--timeline-font-size:.75rem;--timeline-title-size:.875rem;--timeline-width:calc(var(--card-width) * 1.2);--timeline-title-line-height:1.4;--timeline-marker-offset:calc(var(--border-width) + var(--timeline-card-padding-y) + var(--timeline-title-size) * var(--timeline-title-line-height) / 2);gap:calc(var(--shadow-offset) + 1rem);width:100%;max-width:var(--timeline-width);margin:var(--intro-to-cards-spacing) 0 0;padding:0;list-style:none;display:grid;position:relative}.timeline:before{content:"";top:calc(-1 * var(--timeline-lead));bottom:0;left:calc(-1 * var(--timeline-gap));background:linear-gradient(to bottom, transparent, var(--color-timeline-line) calc(var(--timeline-lead) + var(--timeline-marker-offset)));width:1px;position:absolute}.timeline-item{position:relative}.timeline-marker{z-index:1;top:calc(var(--timeline-marker-offset) - var(--timeline-marker-size) / 2);left:calc(-1 * var(--timeline-gap) + .5px - var(--timeline-marker-size) / 2);width:var(--timeline-marker-size);height:var(--timeline-marker-size);background:var(--color-text);border-radius:1px;position:absolute}.timeline-card{padding:var(--timeline-card-padding-y) var(--timeline-card-padding-x);display:block}.timeline-card-title{font-family:var(--font-card-title);font-size:var(--timeline-title-size);font-weight:700;line-height:var(--timeline-title-line-height);color:var(--color-text)}.timeline-card-description{font-size:var(--timeline-font-size);color:var(--color-timeline-description);margin-top:12px;font-weight:400;line-height:1.4}.river-dots{z-index:-1;pointer-events:none;width:100%;height:100%;display:block;position:fixed;top:0;right:0}.river-content{display:block}.river-controls{z-index:1;position:fixed}.river-controls-toggle{width:100%;height:100%;font:inherit;color:inherit;background:var(--color-card);border:var(--border-width) solid var(--color-border);border-radius:var(--border-radius);box-shadow:var(--shadow-offset) var(--shadow-offset) 0 var(--color-shadow);cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);justify-content:center;align-items:center;gap:.45em;padding:0;line-height:1.1;display:flex}.river-controls-toggle:hover,.river-controls-toggle:focus-visible{background:var(--color-card-hover);transform:translate(calc(var(--shadow-offset) - var(--shadow-offset-hover)), calc(var(--shadow-offset) - var(--shadow-offset-hover)));box-shadow:var(--shadow-offset-hover) var(--shadow-offset-hover) 0 var(--color-shadow)}.river-controls-toggle:active{transform:translate(var(--shadow-offset), var(--shadow-offset));box-shadow:0 0 0 var(--color-shadow)}.river-controls-state{font-weight:700}.river-bank{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;top:0;right:0;overflow:hidden}.river-bank svg{width:var(--river-width);height:var(--river-height);fill:none;max-width:none;stroke:var(--color-bank);stroke-width:var(--bank-line-width);display:block;position:absolute;top:0;left:0}@media (prefers-reduced-motion:reduce){.section-card{transition:none}}
