@font-face{font-family:Home M PLUS\ 1p;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/portfolio/mplus1p-regular.woff2) format("woff2")}@font-face{font-family:Home M PLUS\ 1p;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/portfolio/mplus1p-bold.woff2) format("woff2")}@font-face{font-family:Home M PLUS\ 1p;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/portfolio/mplus1p-extrabold.woff2) format("woff2")}@font-face{font-family:Home Kosugi;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/portfolio/kosugi-regular.woff2) format("woff2")}.home-document{margin:0;background:#fafafa}.portfolio-home{--home-paper:#fafafa;--home-ink:#18181b;--home-blue:#3b82f6;--home-apps:#ff9780;--home-skills:#7fd4c9;--home-header-height:4.4375rem;background:var(--home-paper);color:var(--home-ink);color-scheme:light;font-family:Home M PLUS\ 1p,sans-serif;font-size:1.5rem;line-height:1.5;-webkit-font-smoothing:antialiased}.portfolio-home *,.portfolio-home :after,.portfolio-home :before{box-sizing:border-box}.portfolio-home :is(h1,h2,h3,p,ul){margin:0}.portfolio-home :is(h1,h2,h3){font-family:inherit;font-weight:800;white-space:nowrap}.portfolio-home :is(h1,h2){font-size:3rem;line-height:1.4792}.portfolio-home h3{font-size:1.5rem;line-height:1.5}.portfolio-home p{line-height:inherit}.portfolio-home ul{padding:0;list-style:none}.portfolio-home a{color:inherit;text-decoration:none}.portfolio-home a:hover{text-decoration:underline;text-underline-offset:.2em}.portfolio-home button{font:inherit;cursor:pointer}.portfolio-home :is(a,button):focus-visible{outline:.125rem solid currentColor;outline-offset:.25rem}.portfolio-home img{display:block}.portfolio-home :is(section,main){scroll-margin-top:calc(var(--home-header-height) + 1rem)}.portfolio-home main:focus{outline:none}.portfolio-home main>section{padding-block:75px}.portfolio-home .pf-home-skip{position:fixed;z-index:100;left:1rem;top:1rem;padding:.75rem 1rem;font-size:1rem;background:var(--home-paper);color:var(--home-ink);transform:translateY(-200%)}.portfolio-home .pf-home-skip:focus{transform:none}.portfolio-home.pf-home-loading{min-height:100dvh;padding:5rem 1.5rem}.portfolio-home.pf-home-loading button{margin-top:1.5rem;padding:.75rem 1.5rem;border:.0625rem solid var(--home-ink);background:var(--home-ink);color:var(--home-paper);font:inherit;cursor:pointer}.portfolio-home.pf-home-loading button:is(:hover,:focus-visible){background:var(--home-paper);color:var(--home-ink)}.portfolio-home .pf-home-header{position:fixed;z-index:30;inset:0 0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;min-height:var(--home-header-height);padding:0 max(.625rem,env(safe-area-inset-right)) 0 max(.625rem,env(safe-area-inset-left));background:transparent;color:var(--home-paper);transition:background-color .2s,color .2s}.portfolio-home .pf-home-header[data-scrolled]{background:var(--home-paper);color:var(--home-ink)}.portfolio-home .pf-home-brand{font-size:3rem;font-weight:800;line-height:1.4792;min-width:0;white-space:nowrap}.portfolio-home .pf-home-menu{flex:0 0 auto;max-width:100%;margin-left:auto}.portfolio-home .pf-home-menu>.pf-menu-toggle{display:none}.portfolio-home .pf-home-menu>nav{display:flex;flex-wrap:wrap;align-items:center;gap:1.875rem;font-size:1.5rem;font-weight:800}.portfolio-home .pf-header-contact{padding:.625rem 1.25rem;border-radius:62.5rem;color:var(--home-paper);background:var(--home-ink)}.portfolio-home .pf-home-header[data-scrolled] .pf-header-contact{border:.0625rem solid var(--home-ink);padding:.5625rem 1.1875rem;color:var(--home-ink);background:transparent}.portfolio-home .pf-home-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(3.625rem,1fr) auto minmax(3.625rem,1fr);gap:1.875rem;min-height:100vh;min-height:100dvh;overflow:hidden;background:var(--home-blue);color:var(--home-paper)}.portfolio-home .pf-home-art{position:absolute;inset:0;overflow:hidden;pointer-events:none}.portfolio-home .pf-hero-canvas{position:absolute;left:50%;top:50%;width:max(100%,137.03704vh);width:max(100%,calc(100dvh*37/27));aspect-ratio:37/27;transform:translate(-50%,-50%)}.portfolio-home .pf-hero-image{position:absolute;overflow:hidden;opacity:.1}.portfolio-home .pf-hero-image-rounded{border-radius:1.25rem}.portfolio-home .pf-hero-image img{width:100%;height:100%;max-width:none;-o-object-fit:cover;object-fit:cover}.portfolio-home .pf-hero-crop-filter img{position:absolute;top:-.14%;height:128.27%}.portfolio-home .pf-hero-crop-denko img{position:absolute;top:-4.61%;height:104.61%}.portfolio-home .pf-hero-copy{position:relative;grid-row:2;display:grid;grid-template-columns:minmax(0,1fr);gap:1.875rem;margin-inline:1rem;text-align:center}.portfolio-home .pf-hero-copy>*{min-width:0;max-width:100%}.portfolio-home .pf-hero-copy p{max-width:64.5rem;margin-inline:auto;font-family:Home Kosugi,sans-serif;font-size:1.25rem;line-height:3.125rem;white-space:pre-line;overflow-wrap:anywhere}.portfolio-home .pf-scroll-cue{position:relative;grid-row:3;display:grid;place-items:center;align-self:end;justify-self:center;width:3.625rem;height:3.625rem}.portfolio-home .pf-scroll-cue img{width:100%;transform:rotate(90deg);max-width:none}.portfolio-home .pf-home-profile{margin-block:0;padding-inline:1.5rem}.portfolio-home .pf-profile-content{display:flex;align-items:center;gap:1.875rem;max-width:64.5rem;padding-left:1.875rem;margin-inline:auto}.portfolio-home .pf-profile-photo{width:10.75rem;height:10.75rem;flex:0 0 auto;border-radius:50%;-o-object-fit:cover;object-fit:cover}.portfolio-home .pf-profile-copy{min-width:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr);gap:1.875rem}.portfolio-home .pf-profile-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:.625rem}.portfolio-home .pf-profile-heading>div:first-child{min-width:0;max-width:100%}.portfolio-home .pf-profile-heading h2{font-size:3rem;line-height:1;max-width:100%;min-width:0}.portfolio-home .pf-profile-links{max-width:100%;min-width:0;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:1.875rem;flex:0 0 auto}.portfolio-home .pf-profile-links a{display:inline-flex;align-items:center;min-height:2.75rem;text-decoration:underline;text-underline-offset:.2em}.portfolio-home .pf-profile-copy p{overflow-wrap:anywhere}.portfolio-home .pf-profile-copy>p{font-size:1rem}.portfolio-home :is(.pf-home-apps,.pf-home-skills){text-align:center}.portfolio-home .pf-home-apps{background:var(--home-apps)}.portfolio-home .pf-app-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:1.875rem;max-width:68.25rem;margin:0 auto;padding:1.875rem 1.875rem 0}.portfolio-home .pf-app-card{display:flex;flex-direction:column;align-items:center;gap:1.875rem;min-width:0;min-height:22.125rem;padding:1.875rem;border-radius:1.25rem;background:var(--home-paper);box-shadow:0 0 1.25rem .25rem #0000001a}.portfolio-home .pf-app-heading{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:1.875rem;width:100%;min-width:0}.portfolio-home .pf-app-heading h3{min-width:0;max-width:100%}.portfolio-home .pf-app-icon{width:5rem;height:5rem;border-radius:1rem;-o-object-fit:cover;object-fit:cover;box-shadow:0 0 1.25rem .25rem #0000001a}.portfolio-home .pf-app-card>p{width:100%;max-width:11.0625rem;font-size:1rem;text-align:left;overflow-wrap:anywhere}.portfolio-home .pf-store-links{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:1.25rem;margin-top:auto}.portfolio-home .pf-store-links>a{display:flex;align-items:center;min-height:2.75rem}.portfolio-home .pf-apple-badge{position:relative;display:block;width:108.852px;height:40px}.portfolio-home .pf-apple-badge>img:not(:first-child){position:absolute}.portfolio-home .pf-apple-mark{left:8.83%;top:19.62%}.portfolio-home .pf-apple-title{left:31.63%;top:21.55%}.portfolio-home .pf-apple-caption{left:31.59%;top:58.44%}.portfolio-home .pf-home-skills{margin-block:0;background:var(--home-skills)}.portfolio-home .pf-skill-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.875rem;max-width:64.5rem;margin-inline:auto;padding:1.875rem 1.875rem 0}.portfolio-home .pf-skill-card{display:flex;flex-direction:column;align-items:center;gap:1.875rem;min-width:0;padding:1.875rem .75rem;border-radius:1.25rem;background:var(--home-paper);box-shadow:0 0 1.25rem .25rem #0000001a}.portfolio-home .pf-skill-card strong{font-weight:700}.portfolio-home .pf-skill-card li{line-height:3rem}.portfolio-home .pf-skill-divider{width:min(22.125rem,calc(100% - 3.75rem));height:.0625rem;overflow:hidden}.portfolio-home .pf-skill-divider img{margin-inline:auto;max-width:none}.portfolio-home .pf-home-contact{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding-inline:1.5rem;text-align:center;background:var(--home-blue);color:var(--home-ink)}.portfolio-home .pf-contact-description{max-width:34rem;font-size:1.125rem}.portfolio-home .pf-contact-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem 1.5rem;max-width:100%;font-size:1rem}.portfolio-home .pf-contact-primary{display:inline-flex;justify-content:center;align-items:center;min-height:3rem;padding:.75rem 1.5rem;border:.125rem solid var(--home-ink);border-radius:.5rem;background:var(--home-ink);color:var(--home-paper);font-weight:700}.portfolio-home .pf-contact-primary:is(:hover,:focus-visible){background:var(--home-paper);color:var(--home-ink)}.portfolio-home .pf-contact-email{display:inline-flex;align-items:center;min-height:2.75rem;text-decoration:underline;text-underline-offset:.15em}.portfolio-home .pf-copyright{color:inherit}.portfolio-home .pf-footer-links{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem 1.875rem;margin-top:1.5rem;font-size:1rem}.portfolio-home .pf-footer-links a{display:inline-flex;align-items:center;min-height:2.75rem;text-decoration:underline}.portfolio-home .pf-contact-dialog{border:0;padding:0;width:min(36.25rem,calc(100% - 2rem));height:min(53.75rem,calc(100dvh - 2rem));max-height:calc(100dvh - 2rem);background:var(--home-paper);color:var(--home-ink)}.portfolio-home .pf-contact-dialog::backdrop{background:#18181b99}.portfolio-home .pf-contact-dialog[open]{display:flex;flex-direction:column}.portfolio-home .pf-contact-dialog-heading{display:flex;flex:0 0 auto;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem}.portfolio-home .pf-contact-dialog-heading h2{font-size:1.25rem;min-width:0}.portfolio-home .pf-contact-dialog-heading button{min-width:2.75rem;min-height:2.75rem;flex:0 0 auto;border:0;border-radius:.25rem;font-size:1.5rem;background:var(--home-ink);color:var(--home-paper)}.portfolio-home .pf-contact-dialog iframe{display:block;border:0;width:100%;min-height:0;flex:1}@media (max-width:87.5rem){.portfolio-home .pf-hero-copy h1{font-size:2.5rem}}@media (max-width:70rem){.portfolio-home .pf-hero-copy h1{font-size:2rem}.portfolio-home .pf-profile-content{padding-left:0}.portfolio-home .pf-profile-heading{flex-wrap:wrap;gap:1rem}.portfolio-home .pf-profile-copy{font-size:1.125rem}.portfolio-home .pf-app-card{padding-inline:1rem}}@media (max-width:54rem){.portfolio-home .pf-hero-copy h1{font-size:1.75rem}.portfolio-home .pf-app-cards{grid-template-columns:1fr;max-width:26rem}.portfolio-home .pf-app-card{padding:1.875rem}.portfolio-home .pf-skill-cards{grid-template-columns:1fr;max-width:36rem}}@media (max-width:48rem){.portfolio-home{--home-header-height:4rem}.portfolio-home .pf-home-header{padding-inline:1rem;gap:1rem;flex-wrap:nowrap}.portfolio-home .pf-home-brand{flex:0 1 auto;font-size:1.75rem}.portfolio-home .pf-home-menu:is([data-enhanced],[data-preview])>.pf-menu-toggle{display:grid;border:0;background:transparent;color:inherit;place-items:center;width:2.75rem;height:2.75rem;list-style:none}.portfolio-home .pf-menu-icon,.portfolio-home .pf-menu-icon:after,.portfolio-home .pf-menu-icon:before{width:1.5rem;height:.125rem;background:currentColor}.portfolio-home .pf-menu-icon{position:relative}.portfolio-home .pf-menu-icon:after,.portfolio-home .pf-menu-icon:before{content:"";position:absolute;left:0;top:-.4375rem}.portfolio-home .pf-menu-icon:after{top:.4375rem}.portfolio-home .pf-home-menu[data-open] .pf-menu-icon{background:transparent}.portfolio-home .pf-home-menu[data-open] .pf-menu-icon:before{top:0;transform:rotate(45deg)}.portfolio-home .pf-home-menu[data-open] .pf-menu-icon:after{top:0;transform:rotate(-45deg)}.portfolio-home .pf-home-menu>nav{display:none;position:absolute;top:100%;inset-inline:0;max-height:calc(100dvh - var(--home-header-height));overflow-y:auto;padding:1rem;background:var(--home-paper);color:var(--home-ink);box-shadow:0 .5rem 1rem #00000014}.portfolio-home .pf-home-menu[data-open]>nav{display:grid;gap:.5rem}.portfolio-home .pf-home-menu:not([data-enhanced]):not([data-preview])>nav{display:flex;position:static;flex-wrap:wrap;gap:.5rem 1rem;padding:0;box-shadow:none;font-size:1rem;background:transparent;color:inherit}.portfolio-home .pf-home-menu nav a{padding:.75rem 1rem}.portfolio-home .pf-header-contact{text-align:center}.portfolio-home .pf-hero-copy h1{font-size:1.25rem}.portfolio-home .pf-hero-copy p{max-width:31rem;font-size:1rem;line-height:2rem}.portfolio-home .pf-hero-copy{gap:1.5rem}.portfolio-home .pf-profile-content{flex-direction:column;gap:1.5rem}.portfolio-home .pf-profile-photo{width:7rem;height:7rem}.portfolio-home .pf-profile-copy{width:100%;gap:1.5rem;padding:0}.portfolio-home .pf-profile-heading{flex-direction:column;align-items:flex-start}.portfolio-home .pf-profile-heading>div:first-child{min-width:0;max-width:100%}.portfolio-home .pf-profile-links{gap:1.5rem}.portfolio-home .pf-home-profile{padding-inline:max(0px,min(1.5rem,calc(50% - 130.674px)))}.portfolio-home :is(.pf-app-cards,.pf-skill-cards){padding:min(1.875rem,5vw) min(1.875rem,5vw) 0}.portfolio-home .pf-app-card{padding:min(1.875rem,5vw)}.portfolio-home .pf-contact-dialog-heading{padding:1rem;gap:.5rem}.portfolio-home .pf-copyright{font-size:1rem}}@media (max-width:26rem){.portfolio-home .pf-hero-copy h1{font-size:1rem}.portfolio-home .pf-skill-card{font-size:1.125rem}}@media (max-width:22rem){.portfolio-home .pf-hero-copy h1{font-size:.875rem}.portfolio-home .pf-skill-card{font-size:1rem}}@media (max-height:25rem){.portfolio-home .pf-hero-copy{gap:.75rem}.portfolio-home .pf-hero-copy p{line-height:1.5rem}}@media (prefers-reduced-motion:reduce){.portfolio-home .pf-home-header{transition:none}}