:root{--bg:#f5f6f7;--card:#fff;--ink:#171717;--muted:#646b75;--faint:#646b75;--line:#17171714;--accent:#c9a0a8;--accent-ink:#8f5d66;--rose:#a85a4e;--sky:#5b8fb0;--link-orange:#e0a070;--link-sky:#8eb6cc;--link-rose:#d9a398;--link-lime:#9cbfa8;--link-lilac:#c4b0d4;--radius:1rem}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f6f7;background:var(--bg);color:#171717;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;margin:0}::selection{background:#f4e6e8;color:#171717;color:var(--ink)}a{color:inherit}:focus-visible{outline:2px solid #8f5d66;outline:2px solid var(--accent-ink);outline-offset:3px}.App{min-height:100vh;overflow-x:hidden;position:relative;text-align:left}.App,.skip-link{color:var(--ink)}.skip-link{background:var(--card);border-radius:.5rem;box-shadow:0 0 0 1px var(--line);font-size:.88rem;font-weight:500;left:1rem;padding:.45rem .7rem;position:absolute;text-decoration:none;top:.75rem;transform:translateY(-160%);z-index:20}.skip-link:focus{transform:none}.page{margin:0 auto;padding:2.25rem 0 4rem;position:relative;width:min(1120px,calc(100% - 2.5rem));z-index:1}.garden{grid-gap:1.15rem 1.1rem;align-items:start;display:grid;gap:1.15rem 1.1rem;grid-template-areas:"intro intro photo" "project project kai" "coffee bakery now" "papers papers links" "resume resume resume";grid-template-columns:1.1fr 1fr .95fr}.intro{grid-area:intro;padding:.35rem .15rem .2rem;scroll-margin-top:4.5rem}.intro-washu{grid-gap:1.15rem 1.25rem;align-items:start;display:grid;gap:1.15rem 1.25rem;grid-template-columns:minmax(0,1fr) 148px;margin:0 0 1.15rem;position:relative}.intro-washu .intro-copy{margin-bottom:0;padding-top:.35rem}.photo-grad{margin:.15rem 0 0;width:148px}.sticker-arrow-washu{left:-126px;pointer-events:none;position:absolute;top:44px;transform:rotate(16deg);-webkit-user-select:none;user-select:none;width:136px;z-index:3}.sticker-tape-grad{left:50%;top:-22px;transform:translateX(-50%) rotate(-7deg);width:72px}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;scroll-margin-top:4.5rem}.photo-tile{background:#0000;border:0;box-shadow:none;overflow:visible;position:relative;z-index:2}.photo-frame{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.photo-sticker{pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;z-index:2}.sticker-tape-gallery{left:-6px;top:-22px;transform:rotate(-12deg);width:96px}.sticker-tape-gallery-br{bottom:-22px;right:-6px;transform:rotate(10deg);width:96px}.sticker-bow-kai{bottom:0;left:-12px;transform:rotate(26deg);width:62px}.sticker-tape-coffee{left:50%;top:-28px;transform:translateX(-50%) rotate(4deg);width:108px}.sticker-tape-top{left:50%;top:-28px;transform:translateX(-50%) rotate(-3deg);width:108px}.sticker-star{right:-12px;top:-14px;transform:rotate(12deg);width:58px}.photo-kai{grid-area:kai}.photo-coffee{grid-area:coffee}.photo-bakery{grid-area:bakery}.photo-gallery{grid-area:photo}.project-tile{color:inherit;display:block;grid-area:project;text-decoration:none}.project-tile:focus-visible{outline-offset:4px}.now-tile{grid-area:now;padding:1.15rem 1.2rem 1.25rem}.tile-papers{grid-area:papers;padding:1.2rem 1.35rem .7rem}.tile-resume{grid-area:resume;padding:1.2rem 1.5rem 1.4rem}.tile-links{grid-area:links;padding:1.2rem 1.25rem 1.3rem}@media (max-width:900px){.page{width:min(1120px,calc(100% - 1.4rem))}.garden{grid-template-areas:"intro" "photo" "kai" "coffee" "bakery" "project" "now" "papers" "resume" "links";grid-template-columns:1fr}.photo-tile{max-width:340px}.intro-washu{gap:.9rem;grid-template-columns:minmax(0,1fr) 122px}.photo-grad{max-width:122px;width:122px}.sticker-arrow-washu{left:-14px;top:28px;transform:rotate(14deg);width:78px}.sticker-tape-grad{width:62px}}.site-nav{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin:0 auto;padding:1.15rem 0 .4rem;position:relative;width:min(1120px,calc(100% - 2.5rem));z-index:1}.nav-wordmark{color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:1.05rem;font-weight:400;letter-spacing:-.02em;text-decoration:none}.nav-center,.nav-end{display:flex;flex-wrap:wrap;gap:.85rem 1.1rem}.nav-center a,.nav-end a{color:var(--muted);font-size:.92rem;font-weight:500;text-decoration:none}.nav-center a:focus-visible,.nav-center a:hover,.nav-end a:focus-visible,.nav-end a:hover,.nav-wordmark:focus-visible,.nav-wordmark:hover{color:var(--ink)}.intro-copy{color:var(--muted);font-family:Fraunces,Georgia,serif;font-size:clamp(1.45rem,2.4vw,2rem);font-weight:300;letter-spacing:-.025em;line-height:1.42;margin:0 0 1.15rem}h1.intro-copy{color:var(--muted);font-size:clamp(1.7rem,3vw,2.35rem)}.intro-copy.last{margin-bottom:0}.name-mark{color:var(--accent-ink);font-weight:400}.em,.garden-mark{color:var(--ink);font-weight:400}.garden-mark{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-style:dotted;text-underline-offset:.18em}.role-mark{color:var(--ink);font-weight:400;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-style:wavy;text-decoration-thickness:1.5px;text-underline-offset:.22em}.link-lilac,.link-lime,.link-orange,.link-rose,.link-sky,.text-link{color:var(--ink);font-weight:400;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:.18em}.link-orange{text-decoration-color:var(--link-orange)}.link-sky{text-decoration-color:var(--link-sky)}.link-rose,.text-link{text-decoration-color:var(--link-rose)}.link-lime{text-decoration-color:var(--link-lime)}.link-lilac{text-decoration-color:var(--link-lilac)}.link-lilac:hover,.link-lime:hover,.link-orange:hover,.link-rose:hover,.link-sky:hover,.text-link:hover{color:var(--accent-ink)}.garden-photo{display:block;height:100%;object-fit:cover;width:100%}.kai-photo{aspect-ratio:3/4;object-position:center 70%}.coffee-photo{aspect-ratio:3/4;background:#1a1a1a;object-fit:contain;object-position:center bottom}.bakery-photo{aspect-ratio:4/5;object-position:center}.gallery-photo{aspect-ratio:3/4;object-position:center 40%}.grad-photo{aspect-ratio:3/4;object-position:center 22%}.tile-label{color:var(--muted);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:.72rem;font-weight:500;letter-spacing:.01em;line-height:1.3;margin:0 0 .7rem}.project-top{align-items:center;display:flex;justify-content:space-between;padding:.9rem 1.1rem .55rem}.project-top .tile-label{margin-bottom:0}.project-arrow{color:var(--faint);font-size:.95rem}.project-image{aspect-ratio:16/9;border-bottom:1px solid var(--line);border-top:1px solid var(--line);display:block;object-fit:cover;object-position:center top;width:100%}.project-body{padding:.95rem 1.1rem 1.15rem}.project-title{font-family:Fraunces,Georgia,serif;font-size:1.35rem;font-weight:400;letter-spacing:-.03em;margin:0 0 .3rem}.project-desc{color:var(--muted);font-size:.92rem;line-height:1.5;margin:0}.project-tile:focus-visible .project-arrow,.project-tile:focus-visible .project-title,.project-tile:hover .project-arrow,.project-tile:hover .project-title{color:var(--accent-ink)}.now-place{font-family:Fraunces,Georgia,serif;font-size:1.35rem;font-weight:400;letter-spacing:-.03em;margin:0 0 .55rem}.now-line{font-size:.95rem;line-height:1.5;margin:0 0 .55rem}.muted,.now-line.muted{color:var(--muted)}.publication-list{display:flex;flex-direction:column}.publication{grid-gap:.75rem;border-top:1px solid var(--line);display:grid;gap:.75rem;grid-template-columns:3rem 1fr;padding:.85rem 0}.publication:first-child{border-top:0;padding-top:0}.publication-year{font-feature-settings:"tnum";color:var(--accent-ink);font-family:Fraunces,Georgia,serif;font-size:.92rem;font-variant-numeric:tabular-nums;padding-top:.12rem}.publication-title{font-size:.95rem;font-weight:600;line-height:1.4;margin:0 0 .15rem}.publication-authors,.publication-venue{color:var(--muted);font-size:.84rem;line-height:1.45}.publication-venue{font-style:italic;margin-bottom:.4rem}.publication-meta{align-items:center;display:flex;flex-wrap:wrap;font-size:.8rem;gap:.4rem .7rem}.publication-meta a{color:var(--rose);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}.publication-meta a:hover{color:var(--accent-ink)}.badge-award,.badge-type{border-radius:999px;display:inline-block;font-size:.66rem;font-weight:600;letter-spacing:.04em;padding:.12rem .45rem;text-transform:uppercase}.badge-type{background:var(--ink);color:var(--card)}.badge-award{background:#ead7d2;color:#7a3f38}.resume-lede{color:var(--muted);font-family:Fraunces,Georgia,serif;font-size:1.15rem;font-weight:300;letter-spacing:-.02em;line-height:1.4;margin:0 0 .85rem}.resume-top{align-items:baseline;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.35rem}.resume-top .tile-label{margin-bottom:0}.resume-save{font-size:.88rem;white-space:nowrap}.resume-block{border-top:1px solid var(--line);margin-top:1rem;padding:1.05rem 0 .15rem}.resume-block:first-of-type{border-top:0;margin-top:.7rem;padding-top:0}.resume-block.last{padding-bottom:0}.resume-block h3{font-family:Fraunces,Georgia,serif;font-size:1.2rem;font-weight:400;letter-spacing:-.03em;margin:0 0 .85rem}.resume-item{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:6.4rem 1fr;margin-bottom:1rem}.resume-when{font-feature-settings:"tnum";color:var(--accent-ink);font-family:Fraunces,Georgia,serif;font-size:.92rem;font-variant-numeric:tabular-nums;padding-top:.12rem}.resume-role{font-size:.98rem;font-weight:600;margin:0 0 .15rem}.resume-place{color:var(--muted);font-size:.9rem;margin:0 0 .35rem}.resume-note{color:var(--muted);font-size:.88rem;line-height:1.5;margin:0}.resume-item ul{color:var(--muted);font-size:.9rem;line-height:1.55;margin:.35rem 0 0;padding-left:1.05rem}.resume-item li{margin-bottom:.28rem}.resume-skills{color:var(--muted);font-size:.92rem;line-height:1.5;margin:0 0 .4rem}.resume-skills span{color:var(--ink);font-weight:600;margin-right:.45rem}.link-list{display:flex;flex-direction:column;gap:.45rem;list-style:none;margin:0;padding:0}.link-list a{color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:1.2rem;font-weight:300;letter-spacing:-.02em;text-decoration:none}.link-list a:focus-visible,.link-list a:hover{color:var(--accent-ink)}@media (max-width:720px){.site-nav{flex-wrap:wrap;width:min(1120px,calc(100% - 1.4rem))}.nav-end{display:none}.intro-copy,h1.intro-copy{font-size:1.4rem}.resume-item{gap:.2rem;grid-template-columns:1fr}}
/*# sourceMappingURL=main.0dec6e4d.css.map*/