:root{--paper:#fff;--ink:#22231f;--muted:#666862;--faint:#f3f3ef;--accent:#c7352c;--line:#dfdfd9;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:6px}a:hover{color:var(--accent)}img{max-width:100%;display:block}p{margin:0 0 22px;line-height:1.7}h1,h2,h3{font-weight:500;letter-spacing:-.055em;margin:0;line-height:1.07}h1{font-size:clamp(58px,7.2vw,94px)}h2{font-size:clamp(38px,4.5vw,58px)}h3{font-size:42px}.wrap{width:min(1100px,calc(100% - 80px));margin-inline:auto}.site-nav{display:flex;align-items:center;justify-content:space-between;padding-block:34px}.wordmark{font-size:22px;font-weight:700;letter-spacing:-.055em}.name-dot{color:var(--accent)}nav{display:flex;gap:30px;font-size:14px}nav a{padding-block:10px}.skip{position:absolute;left:20px;top:-100px;background:white;padding:16px;z-index:100}.skip:focus{top:10px}.intro{max-width:820px;padding-top:60px;padding-bottom:124px}.hello-pair{display:flex;align-items:center;gap:22px;margin-bottom:40px}.portrait{border-radius:50%;object-fit:cover;width:88px;height:88px}.heart{font-size:30px}.genki-mark{width:118px;height:auto}.eyebrow,.index-label{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:550}.eyebrow{margin-bottom:25px}.intro h1{margin-bottom:34px}.soft-ink{color:#777a72}.intro-copy{max-width:670px;font-size:19px;color:#50534c}.intro-copy p:last-child{margin-bottom:28px}.actions{display:flex;align-items:center;gap:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:36px;background:var(--accent);color:white;border:0;border-radius:100px;padding:17px 26px;font-size:15px;font-weight:500;min-height:54px}.button:hover{background:#a92c24;color:white}.text-link{display:inline-flex;gap:24px;align-items:center;font-weight:550;font-size:15px;padding:7px 0;border-bottom:1px solid #b8bab2}.section-intro{max-width:680px;margin-bottom:56px}.section-intro h2{margin-bottom:26px}.section-intro>p:last-child:not(.eyebrow){font-size:18px;color:var(--muted);max-width:620px}.exploration{display:grid;grid-template-columns:.85fr 1.65fr;gap:54px;align-items:center;margin-bottom:66px}.design-copy{padding-block:20px}.index-label{display:block;margin-bottom:24px;font-size:11px;letter-spacing:.1em}.design-copy h3{margin-bottom:22px}.design-copy p{font-size:16px;color:var(--muted);margin-bottom:23px}.preview-stage{display:block;background:#eeeee9;border-radius:18px;padding:26px 26px 0;overflow:hidden;box-shadow:none}.preview-stage img{width:100%;height:auto;box-shadow:0 6px 25px #20251c0d;border-radius:0 0 4px 4px;margin-bottom:26px}.browser-bar{border-radius:6px 6px 0 0;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:11px 13px;font-size:9px;color:#878982;letter-spacing:.03em;border-bottom:1px solid #ededeb}.browser-bar>span:first-child{font-size:9px;letter-spacing:2px;color:#c6c8c1}.work-note{font-size:13px;color:#7a7d74;margin:0 0 110px;max-width:620px}.why{display:grid;grid-template-columns:1fr 1.35fr;gap:80px;padding-bottom:100px}.about{padding-bottom:100px}.about-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:100px}.about-prose{font-size:18px;color:#50534c}.about-prose a{text-decoration:underline;text-underline-offset:4px}.evidence{padding-top:4px}.evidence>div{margin-bottom:40px}.evidence-number{font-size:44px;font-weight:500;letter-spacing:-.055em;display:block;line-height:1.15;margin-bottom:12px}.evidence p{font-size:14px;color:var(--muted)}.closing{background:var(--faint);padding:64px 66px;border-radius:22px;margin-bottom:64px}.closing h2{margin-bottom:28px}.closing>p:not(.eyebrow){font-size:17px;color:var(--muted);max-width:560px}.email-link{display:inline-block;font-size:clamp(20px,3vw,32px);font-weight:500;letter-spacing:-.04em;margin:8px 0 32px}.email-link span{padding-left:16px}.closing-links{display:flex;gap:28px;font-size:14px}.closing-links a{text-decoration:underline;text-underline-offset:5px}.footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);padding-bottom:35px}
/* The web résumé shares the same type and restrained palette. */
.resume-main{max-width:920px;padding:60px 0 84px}.resume-header{margin-bottom:56px}.resume-header .eyebrow{margin-bottom:18px}.resume-header h1{font-size:80px;margin-bottom:17px}.resume-headline{font-size:22px;letter-spacing:-.02em;margin-bottom:16px}.resume-contact{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:14px;color:var(--muted);margin-bottom:26px}.resume-contact a{text-decoration:underline;text-underline-offset:4px}.resume-summary{font-size:19px;color:#50534c;max-width:760px;margin:30px 0 0}.resume-section{display:grid;grid-template-columns:180px 1fr;gap:38px;margin:0 0 52px}.resume-section>h2{font-size:13px;text-transform:uppercase;letter-spacing:.1em;font-weight:550;padding-top:7px;line-height:1.5}.resume-entry{margin:0 0 34px}.resume-entry:last-child{margin-bottom:0}.entry-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:6px}.entry-heading h3{font-size:23px;font-weight:550;letter-spacing:-.035em;line-height:1.2}.entry-heading time,.entry-date{font-size:12px;white-space:nowrap;color:var(--muted)}.entry-role{font-size:14px;color:var(--muted);margin-bottom:12px}.resume-entry ul{padding-left:18px;margin:0;font-size:15px;line-height:1.65;color:#4f524a}.resume-entry li{padding-left:4px;margin-bottom:10px}.resume-entry p{font-size:15px;color:#4f524a}.tech-list{font-size:14px;line-height:1.8;color:var(--muted);margin-top:16px}.skill-group{margin-bottom:19px}.skill-group h3{font-size:15px;letter-spacing:0;font-weight:600;margin-bottom:6px}.skill-group p{font-size:15px;line-height:1.7;color:#55584f;margin:0}.career .resume-entry{margin-bottom:24px}.career .resume-entry p{margin:0}.resume-end{margin-left:218px;background:var(--faint);border-radius:16px;padding:25px}.resume-end p{font-size:16px;margin-bottom:12px}.resume-end .text-link{font-size:14px}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.intro{max-width:740px}.exploration{gap:32px;grid-template-columns:1fr 1.5fr}.design-copy h3{font-size:36px}.preview-stage{padding:18px 18px 0}.preview-stage img{margin-bottom:18px}.why{gap:48px}.about-grid{gap:48px}.evidence-number{font-size:36px}.resume-section{grid-template-columns:140px 1fr;gap:28px}.resume-end{margin-left:168px}}
@media(max-width:640px){.wrap{width:calc(100% - 40px)}.site-nav{padding-block:22px}.wordmark{font-size:20px}nav{gap:18px;font-size:12px}.intro{padding-top:42px;padding-bottom:82px}.hello-pair{gap:18px;margin-bottom:32px}.portrait{width:72px;height:72px}.heart{font-size:25px}.genki-mark{width:98px}.intro h1{font-size:clamp(46px,10.5vw,64px);letter-spacing:-.06em;line-height:1.09}.eyebrow{font-size:10px;letter-spacing:.11em;margin-bottom:20px}.intro-copy{font-size:17px}.actions{gap:23px;flex-wrap:wrap}.button{font-size:14px;padding:15px 22px;gap:26px}.text-link{font-size:14px;gap:16px}h2{font-size:38px}.section-intro{margin-bottom:32px}.section-intro>p:last-child:not(.eyebrow){font-size:17px}.exploration{display:flex;flex-direction:column;gap:20px;align-items:stretch;margin-bottom:58px}.design-copy{padding:0}.design-copy h3{font-size:35px;margin-bottom:16px}.design-copy h3 br{display:none}.design-copy h3 br:after{content:' '}.index-label{margin-bottom:16px;font-size:10px}.preview-stage{padding:15px 15px 0;border-radius:14px}.preview-stage img{margin-bottom:15px}.design-copy p{margin-bottom:15px}.work-note{font-size:12px;margin-bottom:74px}.why{grid-template-columns:1fr;gap:28px;padding-bottom:64px}.about{padding-bottom:64px}.about-grid{grid-template-columns:1fr;gap:24px}.about-prose{font-size:17px}.evidence{display:grid;grid-template-columns:1fr;gap:8px}.evidence>div{margin-bottom:10px}.evidence-number{font-size:32px}.evidence p{font-size:12px}.evidence>.text-link{grid-column:1/-1;justify-self:start}.closing{padding:38px 25px;margin-bottom:38px;border-radius:16px}.closing h2{font-size:35px}.closing>p:not(.eyebrow){font-size:16px}.email-link{font-size:23px}.email-link span{padding-left:6px}.footer{gap:20px;flex-wrap:wrap;font-size:11px}.footer>span:nth-child(2){display:none}.resume-main{padding-top:32px}.resume-header h1{font-size:60px}.resume-headline{font-size:19px}.resume-summary{font-size:17px}.resume-section{display:block;margin-bottom:42px}.resume-section>h2{margin-bottom:22px;font-size:11px}.entry-heading{display:block}.entry-heading h3{margin-bottom:6px}.entry-heading time,.entry-date{display:inline-block;margin-bottom:3px}.resume-contact{font-size:13px}.resume-end{margin-left:0}.resume-header .actions{gap:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
@media print{.site-nav,.footer,.skip,.resume-header .actions,.resume-end{display:none}.resume-main{width:100%;max-width:none;padding:0}.resume-header h1{font-size:40px}.resume-section{break-inside:avoid}.resume-summary{font-size:12pt}.resume-entry li,.resume-entry p,.skill-group p{font-size:10pt}.resume-section{grid-template-columns:130px 1fr;gap:24px;margin-bottom:26px}body{background:white}}

.intro-copy a{text-decoration:underline;text-underline-offset:4px}.case-study{max-width:760px;padding:60px 0 90px}.case-study h1{font-size:clamp(44px,6vw,72px);margin-bottom:28px}.case-study .case-lead{font-size:21px;color:var(--muted)}.case-study section{margin-top:42px}.case-study h2{font-size:28px;letter-spacing:-.035em;margin-bottom:18px}.case-study p,.case-study li{font-size:17px;line-height:1.75;color:#50534c}.case-study ul{padding-left:22px}.case-study li{margin-bottom:8px}.case-study .case-meta{font-size:14px}.case-study a{text-decoration:underline;text-underline-offset:4px}@media(max-width:640px){.case-study{padding-top:36px}.case-study .case-lead{font-size:19px}}

.preview-stage.preview-mockup{padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible}.preview-stage.preview-mockup img{margin:0;border-radius:0;box-shadow:none}

.resume-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:17px}.resume-header .resume-heading h1{margin-bottom:0}.resume-portrait{width:96px;height:96px;object-fit:cover;border-radius:50%;flex-shrink:0}@media(max-width:640px){.resume-heading{gap:16px}.resume-portrait{width:76px;height:76px}.resume-header .resume-heading h1{font-size:52px}}
