: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}.photo-kai:focus-within .sticker-bow-kai,.photo-kai:focus-within .sticker-star,.photo-kai:hover .sticker-bow-kai,.photo-kai:hover .sticker-star{animation:none}.photo-caption{transform:none;transition:none}.project-tile{transition:box-shadow .25s ease}.project-tile:focus-visible,.project-tile:hover{transform:none}.gallery-photo{transition:none}.garden:has(.name-mark:hover) .gallery-photo{transform:none}.role-mark:hover{animation:none}}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 stack" "projects projects projects" "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.75rem;align-items:start;display:grid;gap:1.15rem 1.75rem;grid-template-columns:minmax(0,1fr) 160px;margin:0 0 1.15rem;overflow:visible;position:relative}.intro-washu .intro-copy{margin-bottom:0;padding-top:.35rem}.photo-grad{margin:.15rem 0 0;width:160px}.sticker-arrow-washu{left:-116px;pointer-events:none;position:absolute;top:36%;transform:rotate(10deg);transform-origin:100% 50%;-webkit-user-select:none;user-select:none;width:104px;z-index:5}.sticker-tape-grad{left:50%;top:-24px;transform:translateX(-50%) rotate(-7deg);width:82px}.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;position:relative}.photo-caption{background:color-mix(in srgb,var(--card) 90%,#0000);bottom:0;color:var(--ink);font-family:Fraunces,Georgia,serif;font-size:.88rem;left:0;letter-spacing:-.02em;line-height:1.3;margin:0;padding:.5rem .7rem .55rem;pointer-events:none;position:absolute;right:0;transform:translateY(110%);transition:transform .28s ease}.photo-grad .photo-caption{font-size:.78rem;padding:.38rem .45rem .42rem}.photo-tile:focus-within .photo-caption,.photo-tile:hover .photo-caption{transform:translateY(0)}.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-stack{display:flex;flex-direction:column;gap:1.15rem;grid-area:stack}.photo-gallery,.photo-kai{width:88%}.photo-kai .sticker-bow-kai,.photo-kai .sticker-star{transform-origin:50% 50%}.photo-kai:focus-within .sticker-star,.photo-kai:hover .sticker-star{animation:kai-star-wiggle .9s ease-in-out infinite}.photo-kai:focus-within .sticker-bow-kai,.photo-kai:hover .sticker-bow-kai{animation:kai-bow-bob .9s ease-in-out infinite}@keyframes kai-star-wiggle{0%,to{transform:rotate(12deg) scale(1)}50%{transform:rotate(28deg) scale(1.12)}}@keyframes kai-bow-bob{0%,to{transform:rotate(26deg) translateY(0)}50%{transform:rotate(38deg) translateY(-7px) scale(1.08)}}.photo-coffee{grid-area:coffee}.photo-bakery{grid-area:bakery}.garden:has(.name-mark:hover) .gallery-photo{transform:scale(1.05)}.garden:has(.name-mark:hover) .sticker-tape-gallery{transform:rotate(-18deg)}.garden:has(.name-mark:hover) .sticker-tape-gallery-br{transform:rotate(16deg)}.sticker-tape-gallery,.sticker-tape-gallery-br{transition:transform .45s ease}.projects{grid-gap:1.15rem 1.1rem;align-items:stretch;display:grid;gap:1.15rem 1.1rem;grid-area:projects;grid-template-columns:1fr 1fr 1fr}.project-tile{box-shadow:0 0 0 0 #0000;color:inherit;display:block;height:100%;text-decoration:none;transition:box-shadow .25s ease,transform .25s ease}.project-tile:focus-visible,.project-tile:hover{box-shadow:0 10px 28px #1717171a,0 2px 6px #8f5d661f;transform:translateY(-3px)}.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,.projects{grid-template-columns:1fr}.garden{grid-template-areas:"intro" "stack" "projects" "coffee" "bakery" "now" "papers" "resume" "links"}.photo-tile{max-width:340px}.intro-washu{gap:.9rem 1.4rem;grid-template-columns:minmax(0,1fr) 128px}.photo-grad{max-width:128px;width:128px}.sticker-tape-grad{width:62px}}@media (max-width:640px){.sticker-arrow-washu{display:none}}.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);cursor:pointer;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{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 6'%3E%3Cpath fill='none' stroke='%23c9a0a8' stroke-width='1.7' stroke-linecap='round' d='M0 3.5q4.5-2.9 9 0t9 0'/%3E%3C/svg%3E");background-position:0 100%;background-repeat:repeat-x;background-size:18px 6px;box-decoration-break:clone;-webkit-box-decoration-break:clone;color:var(--ink);cursor:pointer;font-weight:400;padding-bottom:.14em;text-decoration:none}.role-mark:hover{animation:squiggle-shift .4s linear infinite}@keyframes squiggle-shift{0%{background-position-x:0}to{background-position-x:18px}}.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%;transition:transform .45s ease}.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.641a1aef.css.map*/