@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--white:#fff;--off-white:#f6f5f2;--gray-50:#f6f5f2;--gray-100:#eeede9;--gray-200:#dcdad5;--gray-300:#c5c3be;--gray-400:#77746f;--gray-500:#68655f;--gray-600:#56534e;--gray-700:#3b3935;--gray-800:#282724;--gray-900:#191918;--black:#191918;--accent:#191918;--accent-light:#68655f;--accent-bg:#eeede9;--accent-border:#dcdad5;--font-sans:"DM Sans","Noto Sans JP",sans-serif;--font-mono:ui-monospace,monospace;--max-width:1200px;--radius-sm:4px}html{font-family:var(--font-sans);color:var(--black);background:var(--off-white);scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-size:15px;line-height:1.8}a{color:inherit;text-decoration:none;transition:color .2s ease}a:hover{color:var(--gray-500)}a:focus-visible{outline:2px solid currentColor;outline-offset:6px}img{display:block;max-width:100%;height:auto}::selection{background:var(--black);color:var(--white)}section[id],main[id]{scroll-margin-top:32px}.skip-link{position:absolute;top:12px;left:24px;z-index:10;padding:12px 20px;background:var(--white);transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header,.hero,.section,.footer{width:min(1200px,calc(100% - 96px));margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;padding-block:28px;border-bottom:1px solid var(--gray-200)}.wordmark{font-size:24px;font-weight:700;letter-spacing:-1px}.wordmark__dot{margin-left:2px}.site-header nav{display:flex;gap:32px;font-size:12px}.eyebrow{font-size:11px;letter-spacing:.12em;font-weight:500;color:var(--gray-500)}.hero{padding-top:64px}.hero__heading{display:flex;justify-content:space-between;gap:48px;align-items:flex-end;margin-bottom:40px}.hero h1{font-size:clamp(64px,8vw,112px);font-weight:500;line-height:1.04;letter-spacing:-.065em;margin-top:20px}.hero h1 span{display:block}.hero__intro{max-width:360px;padding-bottom:8px;font-size:14px}.text-link{display:inline-flex;gap:40px;align-items:center;border-bottom:1px solid var(--gray-300);padding-bottom:8px;margin-top:28px;font-size:12px}.hero__photo img{width:100%;aspect-ratio:2.25;object-fit:cover;object-position:50% 55%}.hero__photo figcaption{display:flex;justify-content:space-between;gap:16px;padding-top:12px;color:var(--gray-500);font-size:10px;letter-spacing:.06em}.hero__bottom{display:flex;justify-content:space-between;gap:24px;padding-block:32px 48px;font-size:12px}.hero__bottom a{font-size:10px;letter-spacing:.12em}.hero__bottom a span{margin-left:20px}.section{padding-block:80px;border-top:1px solid var(--gray-200)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:40px}h2{font-size:clamp(24px,3vw,36px);font-weight:500;letter-spacing:-.045em;line-height:1.5;margin-top:16px}.section-heading>p{max-width:400px;font-size:13px;color:var(--gray-500)}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project-card{min-width:0;background:var(--white);display:flex;flex-direction:column;border:1px solid var(--gray-200);transition:transform .25s ease,box-shadow .25s ease}.project-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #1919180a;color:inherit}.project-card__preview{background:var(--gray-100);padding:24px;overflow:hidden}.project-card__preview img{width:100%;height:auto;aspect-ratio:1.6;object-fit:contain;box-shadow:0 4px 16px #00000012}.project-card__body{padding:28px;flex:1;display:flex;flex-direction:column}.project-card__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.project-card__icon{width:24px;height:24px}.project-card h3{font-size:23px;font-weight:500;letter-spacing:-.03em}.project-card__desc{font-size:13px;color:var(--gray-500);margin-top:12px;flex:1}.project-card__tags{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:24px;font-size:10px;color:var(--gray-500)}.project-card__cta{display:flex;justify-content:space-between;padding-top:16px;margin-top:20px;border-top:1px solid var(--gray-200);font-size:12px}.work-card{display:grid;grid-template-columns:1fr 1.4fr;gap:64px;border-top:1px solid var(--gray-200);padding-block:32px}.work-card h3{font-size:20px;line-height:1.6;font-weight:500;margin-top:12px}.work-card__tech{font-size:11px;color:var(--gray-500);margin-top:16px}.work-card>div>p:not(.eyebrow):not(.work-card__tech),.work-card li{font-size:13px;color:var(--gray-600)}.work-card ul{padding-left:18px;margin-top:16px}.work-card li+li{margin-top:8px}.about-section{padding:80px 48px;background:#eeede9}.about-grid{max-width:1200px;margin-inline:auto;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.about-photo{position:sticky;top:32px}.about-photo img{width:100%;aspect-ratio:4/5;object-fit:cover}.about-photo figcaption{font-size:10px;color:var(--gray-500);letter-spacing:.1em;margin-top:12px}.story{margin-top:32px;font-size:13px;color:var(--gray-600);line-height:2.1}.story p+p{margin-top:20px}.story__highlight{border-left:2px solid var(--black);padding-left:20px;color:var(--black)}.about-details{margin-top:32px;font-size:12px}.about-details>div{border-top:1px solid var(--gray-300);padding-block:16px;display:grid;grid-template-columns:120px 1fr;gap:12px}.about-details dt{color:var(--gray-500)}.skills-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.skills-group h3{font-size:13px;font-weight:500;margin-bottom:16px}.skills{display:flex;flex-wrap:wrap;gap:8px}.skills span,.modal__tag{padding:4px 10px;font-size:11px;border:1px solid var(--gray-200);border-radius:4px;color:var(--gray-600)}.article-list>a{display:grid;grid-template-columns:64px 1fr 24px;align-items:center;gap:24px;padding-block:28px;border-top:1px solid var(--gray-200)}.article-list h3{font-weight:400;font-size:16px}.footer{padding-block:48px 28px;border-top:1px solid var(--gray-200)}.footer__top,.footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:24px}.social-links{display:flex;gap:28px;font-size:12px}.footer__bottom{margin-top:48px;font-size:10px;color:var(--gray-500)}@media(max-width:800px){.site-header,.hero,.section,.footer{width:calc(100% - 48px)}.site-header nav{gap:16px;font-size:11px}.hero{padding-top:40px}.hero__heading{align-items:start;gap:24px}.hero__intro{max-width:280px;font-size:12px}.hero h1{font-size:72px}.section-heading{align-items:start;flex-direction:column;gap:20px}.work-card{gap:32px}.about-section{padding:64px 24px}.about-grid{gap:40px}.about-details>div{grid-template-columns:1fr;gap:4px}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.site-header{padding-block:20px}.wordmark{font-size:20px}.site-header nav{gap:12px;font-size:10px}.hero__heading{flex-direction:column;gap:28px;margin-bottom:32px}.hero h1{font-size:80px}.hero__intro{max-width:none}.hero__photo img{aspect-ratio:4/3}.hero__bottom{flex-direction:column;gap:12px;padding-bottom:40px}.section{padding-block:56px}.projects-grid{grid-template-columns:1fr;gap:20px}.project-card__body{padding:24px}.project-card h3{font-size:22px}.project-card__preview{padding:16px}.work-card{grid-template-columns:1fr;gap:20px}.about-grid{grid-template-columns:1fr}.about-photo{position:static}.about-photo img{aspect-ratio:4/3}.skills-grid{gap:24px}.article-list>a{grid-template-columns:1fr 20px;gap:8px}.article-list .eyebrow{grid-column:1/-1}.article-list h3{font-size:14px}.footer__bottom{align-items:start;flex-direction:column;gap:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}.project-nav{max-width:820px;margin:0 auto;padding:2.5rem 2rem 0}.project-nav__back{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:var(--gray-500);transition:color .2s}.project-nav__back:hover{color:var(--accent)}.project-page{max-width:820px;margin:0 auto;padding:2rem 2rem 6rem}.project-page__header{padding-bottom:2.5rem;margin-bottom:3rem;border-bottom:1px solid var(--gray-200)}.project-page__title{font-size:clamp(2rem,5vw,3rem);font-weight:800;letter-spacing:-.03em;line-height:1.15;color:var(--gray-900);margin-bottom:.75rem}.project-page__subtitle{font-size:1.05rem;color:var(--gray-500);margin-bottom:1.5rem}.project-page__tags{display:flex;flex-wrap:wrap;gap:.4rem}.project-page__body{font-size:1rem;line-height:1.9;color:var(--gray-700)}.project-page__body>*:first-child{margin-top:0}.project-page__body h1,.project-page__body h2,.project-page__body h3,.project-page__body h4{color:var(--gray-900);font-weight:700;letter-spacing:-.02em;line-height:1.4}.project-page__body h1{font-size:1.75rem;margin:3rem 0 1rem}.project-page__body h2{font-size:1.4rem;margin:3rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--gray-100)}.project-page__body h3{font-size:1.1rem;margin:2rem 0 .75rem}.project-page__body h4{font-size:1rem;margin:1.5rem 0 .5rem;color:var(--gray-600)}.project-page__body p{margin:1rem 0}.project-page__body ul,.project-page__body ol{margin:1rem 0;padding-left:1.5rem}.project-page__body li{margin:.4rem 0}.project-page__body li::marker{color:var(--gray-400)}.project-page__body strong{color:var(--gray-900);font-weight:600}.project-page__body a{text-decoration:underline;text-underline-offset:2px}.project-page__body blockquote{margin:1.5rem 0;padding:1rem 1.25rem;border-left:3px solid var(--accent-border);background:var(--accent-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--gray-600)}.project-page__body blockquote p{margin:0}.project-page__body code{font-family:var(--font-mono);font-size:.85em;background:var(--gray-100);color:var(--gray-800);padding:.15em .4em;border-radius:4px}.project-page__body pre{margin:1.5rem 0;padding:1.25rem;background:var(--gray-900);border-radius:var(--radius-sm);overflow-x:auto;line-height:1.6}.project-page__body pre code{background:none;color:var(--gray-100);padding:0;font-size:.85rem}.project-page__body hr{margin:3rem 0;border:none;border-top:1px solid var(--gray-200)}.project-page__body img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.project-page__body table{width:100%;margin:1.5rem 0;border-collapse:collapse;font-size:.9rem;display:block;overflow-x:auto}.project-page__body th,.project-page__body td{border:1px solid var(--gray-200);padding:.6rem .8rem;text-align:left;vertical-align:top}.project-page__body th{background:var(--gray-50);color:var(--gray-800);font-weight:600;white-space:nowrap}@media(max-width:640px){.project-nav,.project-page{padding-left:1.25rem;padding-right:1.25rem}}
