@font-face{font-family:Cinzel;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cinzel-latin-ext-400-normal-XQK_CSAr.woff2)format("woff2"),url(/assets/cinzel-latin-ext-400-normal-DJ0Lq8y-.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:Cinzel;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cinzel-latin-400-normal-DnUIPmzd.woff2)format("woff2"),url(/assets/cinzel-latin-400-normal-C8jUSQqm.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:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cinzel-latin-ext-600-normal-BEFdM_VE.woff2)format("woff2"),url(/assets/cinzel-latin-ext-600-normal-BY9Mq9iK.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:Cinzel;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cinzel-latin-600-normal-Dd5YO2UX.woff2)format("woff2"),url(/assets/cinzel-latin-600-normal-CH_LB4su.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:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-cyrillic-ext-400-normal-CBMNjBwz.woff2)format("woff2"),url(/assets/eb-garamond-cyrillic-ext-400-normal-DvVFcYIV.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:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-cyrillic-400-normal-DLFur4M8.woff2)format("woff2"),url(/assets/eb-garamond-cyrillic-400-normal-Cgupd8z3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-greek-ext-400-normal-xgh5yVqR.woff2)format("woff2"),url(/assets/eb-garamond-greek-ext-400-normal-m3zVZPMF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-greek-400-normal-Bd9qxgO7.woff2)format("woff2"),url(/assets/eb-garamond-greek-400-normal-Co9-8-br.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:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-vietnamese-400-normal-CfDT8MMM.woff2)format("woff2"),url(/assets/eb-garamond-vietnamese-400-normal-yoRrTn3C.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:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-ext-400-normal-8a_ZZ2Qq.woff2)format("woff2"),url(/assets/eb-garamond-latin-ext-400-normal-Ckqal4CG.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:EB Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-400-normal-DSJrtJSV.woff2)format("woff2"),url(/assets/eb-garamond-latin-400-normal-zgGxM6DR.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:EB Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/eb-garamond-cyrillic-ext-500-normal-BKz78T03.woff2)format("woff2"),url(/assets/eb-garamond-cyrillic-ext-500-normal-BW_wrb5p.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:EB Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/eb-garamond-cyrillic-500-normal-RaVCNQX7.woff2)format("woff2"),url(/assets/eb-garamond-cyrillic-500-normal-DMxgMKSc.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/eb-garamond-greek-ext-500-normal-B2GLvXWD.woff2)format("woff2"),url(/assets/eb-garamond-greek-ext-500-normal-BdAXjnQq.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/eb-garamond-greek-500-normal-CmiK3K51.woff2)format("woff2"),url(/assets/eb-garamond-greek-500-normal-qyq7qiEo.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:EB Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/eb-garamond-vietnamese-500-normal-aFhv2iya.woff2)format("woff2"),url(/assets/eb-garamond-vietnamese-500-normal-CYDqHS6k.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:EB Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/eb-garamond-latin-ext-500-normal-BUqUdxpG.woff2)format("woff2"),url(/assets/eb-garamond-latin-ext-500-normal-DBzjYlhR.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:EB Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/eb-garamond-latin-500-normal-LNvnJ-zC.woff2)format("woff2"),url(/assets/eb-garamond-latin-500-normal-DX0gtuIC.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:EB Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/eb-garamond-cyrillic-ext-600-normal-DazFskEt.woff2)format("woff2"),url(/assets/eb-garamond-cyrillic-ext-600-normal-D_ymHnfD.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:EB Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/eb-garamond-cyrillic-600-normal-B9A__SKD.woff2)format("woff2"),url(/assets/eb-garamond-cyrillic-600-normal-DufMTKI9.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/eb-garamond-greek-ext-600-normal-Snx9Wt8T.woff2)format("woff2"),url(/assets/eb-garamond-greek-ext-600-normal-9O-NAWHX.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:EB Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/eb-garamond-greek-600-normal-CyqIHpYl.woff2)format("woff2"),url(/assets/eb-garamond-greek-600-normal-_WbCDH6x.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:EB Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/eb-garamond-vietnamese-600-normal-teNMRGp3.woff2)format("woff2"),url(/assets/eb-garamond-vietnamese-600-normal-Be2Kv3D-.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:EB Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/eb-garamond-latin-ext-600-normal-BFygXy1U.woff2)format("woff2"),url(/assets/eb-garamond-latin-ext-600-normal-CUzI_9EY.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:EB Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/eb-garamond-latin-600-normal-CdfBH7_K.woff2)format("woff2"),url(/assets/eb-garamond-latin-600-normal-DVm8LGcc.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:EB Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-cyrillic-ext-400-italic-CrXb_wUK.woff2)format("woff2"),url(/assets/eb-garamond-cyrillic-ext-400-italic-CWxonse8.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:EB Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-cyrillic-400-italic-D_DWC1IY.woff2)format("woff2"),url(/assets/eb-garamond-cyrillic-400-italic-DCsSAFyU.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:EB Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-greek-ext-400-italic-FLlJiINU.woff2)format("woff2"),url(/assets/eb-garamond-greek-ext-400-italic-11TUomBd.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:EB Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-greek-400-italic-BU6_2yEY.woff2)format("woff2"),url(/assets/eb-garamond-greek-400-italic-Bgino0Sw.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:EB Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-vietnamese-400-italic-BW8oGKYg.woff2)format("woff2"),url(/assets/eb-garamond-vietnamese-400-italic-BCMO1dRL.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:EB Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-ext-400-italic-dkY5D-I6.woff2)format("woff2"),url(/assets/eb-garamond-latin-ext-400-italic-CAWkC-nM.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:EB Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/eb-garamond-latin-400-italic-KGnr19QW.woff2)format("woff2"),url(/assets/eb-garamond-latin-400-italic-DxAerz_z.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{--obsidian-0:#080606;--obsidian-1:#0f0c0b;--obsidian-2:#171615;--obsidian-3:#222120;--bone:#f6f1e8;--bone-dim:#ddd6c9;--hairline:#efe9dc24;--hairline-strong:#efe9dc42;--inscription:"Cinzel", "Iowan Old Style", Georgia, serif;--chancery:"EB Garamond", Georgia, "Times New Roman", serif;--instrument:"EB Garamond", Georgia, serif;--size-11:.6875rem;--size-14:.875rem;--size-16:1rem;--size-18:1.125rem;--size-21:1.3125rem;--size-24:1.5rem;--size-36:2.25rem;--size-48:3rem;--size-72:4.5rem;--lead:1.65rem;--lead-q:.4125rem;--lead-h:.825rem;--lead-3q:1.2375rem;--lead-15:2.475rem;--lead-2:3.3rem;--lead-4:6.6rem;--measure:38rem;--container:clamp(1080px, 75vw, 1600px);--pad-x:clamp(1.5rem, 5vw, 3rem);--ease-out:cubic-bezier(.22, 1, .36, 1);--t:.24s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box;margin:0}html{background:var(--obsidian-0);font-size:112.5%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{font-family:var(--chancery);font-size:var(--size-16);line-height:var(--lead);color:var(--bone);background:var(--obsidian-0);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100vh}::selection{background:var(--bone);color:var(--obsidian-0)}a{color:inherit;text-decoration:none}:focus-visible{outline:1px solid var(--bone);outline-offset:4px}h1,h2,h3{text-wrap:balance;font-weight:400}.defs{width:0;height:0;position:absolute;overflow:hidden}.mono-label{font-family:var(--instrument);font-size:var(--size-21);letter-spacing:.08em;color:var(--bone);font-variant-caps:all-small-caps;font-weight:500}.skip{z-index:100;background:var(--obsidian-2);color:var(--bone);clip-path:inset(50%);white-space:nowrap;padding:.9rem 1.2rem;position:fixed;top:1rem;left:1rem}.skip:focus-visible{clip-path:none}.top{z-index:10;max-width:var(--container);padding:var(--lead-3q) var(--pad-x) 0;justify-content:space-between;align-items:baseline;gap:var(--lead);margin-inline:auto;display:flex;position:absolute;inset:0 0 auto}.top__mark{font-family:var(--inscription);font-size:var(--size-21);letter-spacing:.22em;color:var(--bone);transition:color var(--t) var(--ease-out)}.top__mark:hover{color:var(--bone)}.top__nav{gap:var(--lead-h);flex-wrap:wrap;align-items:center;display:flex}.top__nav a{font-size:var(--size-21);transition:color var(--t) var(--ease-out);padding-block:.4em}.top__nav a:hover{color:var(--bone)}.top__mark,.top__nav a{paint-order:stroke fill;-webkit-text-stroke:.28em #000;transform:translateZ(0)}.hero{flex-direction:column;min-height:100svh;display:flex;position:relative}#sky{z-index:0;pointer-events:none;width:100%;height:100lvh;display:block;position:fixed;top:0;left:0}main,.top{z-index:1;position:relative}.hero__content{z-index:2;max-width:var(--container);width:100%;padding:var(--lead-15) var(--pad-x) 0;margin-inline:auto;position:relative}.hero__name{font-family:var(--inscription);font-weight:400;font-size:var(--size-72);letter-spacing:.05em;text-transform:uppercase;max-width:16ch;line-height:1.08}.hero__line{margin-top:var(--lead-15);font-size:var(--size-18);color:var(--bone);max-width:min(41rem,100%)}.hero__meta{margin-top:var(--lead-15);color:var(--bone)}.scroll-cue{margin-top:var(--lead-15);margin-bottom:var(--lead-15);z-index:5;align-self:center;align-items:center;gap:var(--lead-h);color:var(--bone-dim);font-family:var(--chancery);font-size:var(--size-18);text-align:center;paint-order:stroke fill;-webkit-text-stroke:.28em #000;transition:color var(--t) var(--ease-out);will-change:opacity;flex-direction:column;display:flex;transform:translateZ(0)}.scroll-cue:hover{color:var(--bone)}@media (prefers-reduced-motion:no-preference){.scroll-cue__chevron{animation:cue-bob 2.4s var(--ease-out) infinite}}@keyframes cue-bob{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.hero__name,.hero__line,.hero__meta{paint-order:stroke fill}.hero__name{-webkit-text-stroke:.1em #000}.hero__line,.hero__meta{-webkit-text-stroke:.28em #000}.block{margin-top:var(--lead-15);padding:var(--lead-15) max(var(--pad-x), calc((100% - var(--container)) / 2 + var(--pad-x))) var(--lead-15);border-block:1px solid var(--hairline-strong);background:var(--obsidian-2);position:relative}.block:last-child{margin-bottom:var(--lead-2)}.block__head{margin-bottom:var(--lead-15)}.block__numeral{color:var(--bone)}.site-footer{z-index:1;margin-top:var(--lead-15);margin-bottom:var(--lead-2);padding:var(--lead-15) max(var(--pad-x), calc((100% - var(--container)) / 2 + var(--pad-x))) var(--lead-15);border-block:1px solid var(--hairline-strong);background:var(--obsidian-2);position:relative}.site-footer__label{color:var(--bone);margin-bottom:var(--lead-15)}.prose p:not(.mono-label){font-size:var(--size-18);line-height:var(--lead);color:var(--bone-dim);max-width:var(--measure)}.prose strong{color:var(--bone);font-weight:500}.profile{gap:var(--lead-15);grid-template-columns:8rem 1fr;align-items:start;display:grid}.portrait{aspect-ratio:4/5;justify-content:center;align-items:center;gap:var(--lead-q);border:1px solid var(--hairline);background:var(--obsidian-1);flex-direction:column;width:100%;margin:0;display:flex}.portrait__glyph{width:1.1rem;height:1.1rem;fill:var(--bone-dim)}.portrait__caption{color:var(--bone-dim);font-size:var(--size-11)}@media (max-width:38rem){.profile{gap:var(--lead-3q)}}.rows{flex-direction:column;display:flex}.row{gap:var(--lead-15);padding-block:var(--lead-15);border-top:1px solid var(--hairline);transition:background-color var(--t) var(--ease-out);grid-template-columns:11rem 1fr;display:grid}.row:first-child{border-top:none}.block:has(.rows) .block__head{margin-bottom:0}.block:has(.rows){padding-bottom:0}.row:hover{background:var(--obsidian-3)}.row__when{white-space:nowrap;padding-top:.4em}.row--edu,.row--exp,.row--proj{align-items:start;column-gap:var(--lead-15);row-gap:0}.row--edu{grid-template-columns:11rem 3.5rem 1fr}.row--exp,.row--proj{grid-template-columns:11rem 4.5rem 1fr auto}.row--edu .row__when,.row--exp .row__when,.row--proj .row__when{grid-area:1/1;align-self:center;padding-top:0}.row--edu .row__head,.row--exp .row__head,.row--proj .row__head{grid-area:1/3}.row--exp .row__body,.row--proj .row__body{grid-area:2/3}.row--edu .row__logo,.row--exp .row__logo,.row--proj .row__logo{grid-area:1/2;place-self:center;margin:0}.row--edu .row__logo--stanford{--mark-bias:.2;transform:translateX(calc(var(--mark-bias) * 100%))}.row__title{font-family:var(--inscription);font-size:var(--size-21);letter-spacing:.06em;font-weight:400}.row__repo{margin-top:var(--lead-h)}.row__site{margin-top:var(--lead-q);font-size:var(--size-16)}.row--exp .row__full,.row--proj .row__full{grid-area:1/4;place-self:center end;margin-top:0}.row--research{align-items:start;column-gap:var(--lead-15);grid-template-columns:11rem 1fr auto;row-gap:0}.row--research .row__when{grid-area:1/1}.row--research .row__body{grid-area:1/2}.row--research .row__full{grid-area:1/3;place-self:start end;margin-top:0}.row--proj .row__title{font-family:var(--chancery);letter-spacing:normal}.row__logo{fill:currentColor;height:2.4em;display:block}.row--proj .row__logo:empty{display:none}.row__logo--ucdavis{background:currentColor;width:3.43em;height:2.4em;-webkit-mask:url(/uc-davis-aggies.png) 50%/contain no-repeat;mask:url(/uc-davis-aggies.png) 50%/contain no-repeat}.row__logo--stanford{width:1.56em}.row__logo--ohlone{background:currentColor;width:3.08em;height:2.9em;transform:translate(10%);-webkit-mask:url(/ohlone-mark.svg) 50%/contain no-repeat;mask:url(/ohlone-mark.svg) 50%/contain no-repeat}.row__logo--project1{width:2.68em}.row__logo--project2{width:2.71em;height:2.7em}.row__logo--project3{width:3.34em;height:3.2em}.row__logo--project4{width:3.69em}.row__logo--zeefoods{width:2.85em;height:2.85em;overflow:visible}.row__logo--circularimpact{width:2.85em;height:2.85em}.row__logo--rubinet{background:currentColor;width:4.89em;height:2.85em;-webkit-mask:url(/rubinet_logo.png) 50%/contain no-repeat;mask:url(/rubinet_logo.png) 50%/contain no-repeat}.row__org{margin-top:var(--lead-h);color:var(--bone-dim)}.row__detail{margin-top:var(--lead-h);color:var(--bone-dim);max-width:var(--measure)}.row__tags{margin-top:var(--lead-h)}.link-stack{align-items:flex-start;gap:var(--lead-h);flex-direction:column;display:flex}.link{align-items:center;gap:var(--lead-q);font-family:var(--chancery);font-size:var(--size-18);color:var(--bone-dim);transition:color var(--t) var(--ease-out);overflow-wrap:anywhere;display:inline-flex}.link:hover{color:var(--bone)}.link__icon{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:1.15em;height:1.15em}.link-stack--row{align-items:center;column-gap:var(--lead);row-gap:var(--lead-h);flex-flow:wrap}.prose+.link-stack,.link-stack+.link-stack{margin-top:var(--lead-15)}@media (prefers-reduced-motion:no-preference){.js .rises{opacity:0}html.js.is-ready .rises{animation:rise-soft .95s var(--ease-out) forwards}html.js.is-ready .r1{animation-delay:.1s}html.js.is-ready .r2{animation-delay:.22s}html.js.is-ready .r3{animation-delay:.36s}.js [data-reveal]{opacity:0;transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);transform:translateY(14px)}.js [data-reveal].is-visible{opacity:1;transform:none}}@keyframes rise-soft{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (max-width:990px){.top{padding-top:var(--lead-3q);align-items:flex-start;gap:var(--lead-h);flex-direction:column;position:static}.top__nav{gap:var(--lead-h)}}@media (max-width:1024px){.row--exp,.row--proj{grid-template-columns:11rem 4.5rem 1fr}.row--exp .row__full,.row--proj .row__full{margin-top:var(--lead-15);grid-area:3/3;place-self:start}.row--research{grid-template-columns:11rem 1fr}.row--research .row__full{margin-top:var(--lead-15);grid-area:2/2;place-self:start}}@media (max-width:760px){.row{gap:var(--lead-q);grid-template-columns:1fr}.row__when{padding-top:0}.profile{grid-template-columns:1fr}.portrait{width:8rem}.row--edu,.row--exp,.row--proj,.row--research{grid-template-columns:1fr}.row--edu .row__when,.row--exp .row__when,.row--proj .row__when,.row--research .row__when,.row--edu .row__logo,.row--exp .row__logo,.row--proj .row__logo,.row--edu .row__head,.row--exp .row__head,.row--proj .row__head,.row--exp .row__body,.row--proj .row__body,.row--research .row__body,.row--exp .row__full,.row--proj .row__full,.row--research .row__full{grid-area:auto;place-self:start}.row--edu .row__logo,.row--exp .row__logo,.row--proj .row__logo{width:5em;margin-block:var(--lead-h);justify-self:start}.row--edu .row__logo--stanford,.row--edu .row__logo--ohlone{transform:none}}.carousel{margin-right:calc(-1 * max(var(--pad-x), calc((100% - var(--container)) / 2 + var(--pad-x))))}.carousel__track{gap:var(--lead-15);padding:var(--lead-q) 0 var(--lead-h);padding-right:max(var(--pad-x), calc((100% - var(--container)) / 2 + var(--pad-x)));overscroll-behavior-x:contain;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--hairline-strong) transparent;display:flex;overflow-x:auto}.carousel__track::-webkit-scrollbar{height:6px}.carousel__track::-webkit-scrollbar-thumb{background:var(--hairline-strong)}.carousel__track::-webkit-scrollbar-track{background:0 0}.carousel__item{scroll-snap-align:start;flex:none;width:min(78vw,21rem)}.post-card{height:100%;min-height:15rem;padding:var(--lead-3q);background:var(--obsidian-1);border:1px solid var(--hairline);transition:border-color var(--t) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.post-card:hover,.post-card:focus-visible{border-color:var(--hairline-strong)}.post-card__numeral{font-family:var(--inscription);font-size:var(--size-72);color:var(--bone);opacity:.09;pointer-events:none;line-height:1;position:absolute;top:-.12em;right:.1em}.post-card__when{color:var(--bone-dim);font-size:var(--size-14)}.post-card__title{font-family:var(--inscription);font-weight:400;font-size:var(--size-24);letter-spacing:.02em;margin-top:var(--lead-h);color:var(--bone);line-height:1.16;position:relative}.post-card__gloss{margin-top:var(--lead-h);color:var(--bone-dim);font-size:var(--size-16);line-height:1.4}.post-card__tag{padding-top:var(--lead-15);color:var(--bone-dim);font-size:var(--size-11);margin-top:auto}.post-card--archive{border-style:dashed none dashed dashed;border-right-width:0;border-right-color:currentColor;justify-content:center;-webkit-mask-image:linear-gradient(90deg,#000 50%,#0000 95%);mask-image:linear-gradient(90deg,#000 50%,#0000 95%)}.post-card__archive{font-size:var(--size-18);color:var(--bone);border-bottom:1px solid var(--hairline-strong);transition:border-color var(--t) var(--ease-out);padding-bottom:.1em}.post-card--archive:hover .post-card__archive,.post-card--archive:focus-visible .post-card__archive{border-color:var(--bone)}.card-grid{gap:var(--lead-15);margin-top:var(--lead-15);grid-template-columns:repeat(auto-fill,min(100%,21rem));display:grid}.more-link{margin-top:var(--lead-15);color:var(--bone);font-size:var(--size-18);border-bottom:1px solid var(--hairline-strong);transition:border-color var(--t) var(--ease-out);padding-bottom:.1em;display:inline-block}.more-link:hover{border-color:var(--bone)}.row__courses{margin-top:var(--lead-15);grid-area:2/3}.row__courses>summary{cursor:pointer;align-items:baseline;gap:var(--lead-q);margin-top:0;list-style:none;display:inline-flex}.row__courses>summary::-webkit-details-marker{display:none}.row__courses>summary::marker{display:none}.row__courses>summary:after{content:"";transform-origin:60% 60%;width:.4em;height:.4em;transition:transform var(--t) var(--ease-out);border-bottom:1.5px solid;border-right:1.5px solid;align-self:center;display:inline-block;transform:rotate(-45deg)}.row__courses[open]>summary:after{transform:rotate(45deg)}.row__courses[open]>summary{border-color:var(--bone)}.courses{margin-top:var(--lead-3q);padding-top:var(--lead-3q);border-top:1px solid var(--hairline);gap:var(--lead-15) var(--lead-2);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));display:grid}.courses__label{color:var(--bone-dim);margin-bottom:var(--lead-h)}.courses__list{gap:var(--lead-q);flex-direction:column;padding:0;list-style:none;display:flex}.courses__list li{color:var(--bone-dim);font-size:var(--size-16);line-height:1.4}@media (max-width:760px){.row__courses{grid-area:auto}}.more-link--file{border-bottom:0;align-items:center;gap:.5em;display:inline-flex}.more-link--file>span{border-bottom:1px solid var(--hairline-strong);transition:border-color var(--t) var(--ease-out);padding-bottom:.1em}.more-link--file:hover>span{border-color:var(--bone)}.profile__links{gap:var(--lead-h) var(--lead-2);margin-top:var(--lead-15);flex-wrap:wrap;display:flex}.profile__links .more-link{margin-top:0}.record__index{margin-top:var(--lead-15);max-width:var(--measure);color:var(--bone-dim);font-size:var(--size-18)}.record__index a{color:var(--bone);border-bottom:1px solid var(--hairline)}.record__index a:hover{border-color:var(--bone)}.record__lead{max-width:var(--measure);color:var(--bone-dim);margin-bottom:var(--lead-15)}.row--link{grid-template-columns:11rem 1fr auto;grid-template-areas:"when body go";align-items:start}.row--link .row__when{grid-area:when}.row--link .row__body{grid-area:body}.row--link .row__go{padding-left:var(--lead-15);color:var(--bone-dim);font-size:var(--size-24);transition:color var(--t) var(--ease-out);grid-area:go;align-self:center}.row--link:hover .row__title,.row--link:hover .row__go,.row--link:focus-visible .row__title{color:var(--bone)}.back-link{margin-bottom:var(--lead-3q);color:var(--bone-dim);transition:color var(--t) var(--ease-out);display:inline-block}.back-link:hover{color:var(--bone)}main>.back-link{margin-top:var(--lead-2);margin-left:max(var(--pad-x), calc((100% - var(--container)) / 2 + var(--pad-x)))}main>.back-link+.block{margin-top:var(--lead-3q)}.demo-note{max-width:var(--measure);margin-bottom:var(--lead-15);color:var(--bone-dim);font-size:var(--size-14);line-height:var(--lead)}.demo-note code{color:var(--bone)}.entry__head{margin-bottom:var(--lead-15)}.entry__overline{color:var(--bone-dim)}.entry__title{font-family:var(--inscription);font-weight:400;font-size:var(--size-36);letter-spacing:.04em;margin-top:var(--lead-h);max-width:28ch;line-height:1.12}.entry__gloss{margin-top:var(--lead-h);font-size:var(--size-18);color:var(--bone-dim);max-width:var(--measure)}.entry__grid{gap:var(--lead-2);grid-template-columns:1fr 15rem;align-items:start;display:grid}.entry__body p{color:var(--bone-dim);max-width:var(--measure);font-size:var(--size-16)}.entry__body p+p{margin-top:var(--lead-3q)}.entry__body h2{font-family:var(--inscription);font-size:var(--size-18);letter-spacing:.06em;color:var(--bone);margin-top:var(--lead-15);margin-bottom:var(--lead-q);font-weight:400}.entry__body .lede{font-size:var(--size-18);color:var(--bone)}.entry__rail{gap:var(--lead-h);padding-top:var(--lead-h);border-top:1px solid var(--hairline-strong);display:grid}.entry__rail dt{color:var(--bone-dim)}.entry__rail dd{color:var(--bone);margin-top:var(--lead-q)}.entry__rail a{color:var(--bone);border-bottom:1px solid var(--hairline-strong)}.entry__rail a:hover{border-color:var(--bone)}.shipment{border-top:1px solid var(--hairline);padding-top:var(--lead-3q);margin-top:var(--lead-3q);max-width:var(--measure)}.shipment__head{justify-content:space-between;align-items:baseline;gap:var(--lead-15);margin-bottom:var(--lead-q);display:flex}.shipment__title{font-family:var(--inscription);font-size:var(--size-18);letter-spacing:.06em;color:var(--bone);white-space:nowrap;font-weight:400}.shipment p{color:var(--bone-dim);font-size:var(--size-16)}.shipment__tags{color:var(--bone-dim);text-align:right}.shipment__links{margin-top:var(--lead-h);gap:var(--lead-15);display:flex}.shipment__links a{color:var(--bone);border-bottom:1px solid var(--hairline-strong);transition:border-color var(--t) var(--ease-out);padding-bottom:.1em}.shipment__links a:hover{border-color:var(--bone)}.demo-socket{margin-top:var(--lead-h);border:1px dashed var(--hairline-strong);place-items:center;min-height:9rem;display:grid}.demo-socket .mono-label{color:var(--bone-dim)}@media (max-width:760px){.row--link{gap:var(--lead-q) var(--lead-15);grid-template-columns:1fr auto;grid-template-areas:"when go""body body"}.row--link .row__go{align-self:center;padding-left:0}.entry__grid{gap:var(--lead-15);grid-template-columns:1fr}.entry__title{font-size:var(--size-24)}.shipment__head{gap:var(--lead-q);flex-direction:column}.shipment__title{white-space:normal}.shipment__tags{text-align:left}.demo-socket{min-height:8rem}}
