:root{--font-dm-mono:DM Mono,DM Mono Fallback;--typography-h1:#000;--typography-h2:#000;--typography-h3:#000;--typography-h4:#000;--typography-h5:#000;--typography-h6:#000;--typography-p:#333;--typography-blockquote:#000;--typography-a:#000;--template-background:#fafafa;--template-border:#b3b3b3;--template-stripes:#dddddd;--scrollbar-track:#dddddd;--scrollbar-thumb:#fafafa;--scrollbar-hover:#b3b3b3;--page-body-button-border-bottom:#000;--page-body-button-color:#000;--anchor-color:#111;--anchor-color-hover:#E91E63;--areatitle-color:#fafafa;--areatitle-text-shadow:.1rem 0 #000,-.1rem 0 #000,0 .1rem #000,0 -.1rem #000,.1rem .1rem #000,-.1rem -.1rem #000,.1rem -.1rem #000,-.1rem .1rem #000;--chip-background-color:rgba(0,0,0,.05);--chip-background-color-hover:rgba(0,0,0,.2);--tile-project-background:rgba(0,0,0,.05);--tabs-tab-color:#111;--navigator-link-color:#111;--navigator-link-color-hover:#E91E63;--navigator-link-color-active:#E91E63;--navigator-kanji-color:#888;--navigator-icon-color:#000;--navigator-icon-color-hover:#139b75;--background-color:#ccc;--code-color:#111;--footer-message-color:#333;--page-blog-color:#111;--page-blog-text-shadow:.1rem 0 #000,-.1rem 0 #000,0 .1rem #000,0 -.1rem #000,.1rem .1rem #000,-.1rem -.1rem #000,.1rem -.1rem #000,-.1rem .1rem #000;--page-project-externallink-color:#000;--page-project-externallink-color-hover:#fff;--page-project-externallink-background-hover:#139b75;--page-not-found-number-color:#fafafa;--page-not-found-number-text-shadow:.1rem 0 #000,-.1rem 0 #000,0 .1rem #000,0 -.1rem #000,.1rem .1rem #000,-.1rem -.1rem #000,.1rem -.1rem #000,-.1rem .1rem #000;--page-error-number-color:#fafafa;--page-error-number-text-shadow:.1rem 0 #000,-.1rem 0 #000,0 .1rem #000,0 -.1rem #000,.1rem .1rem #000,-.1rem -.1rem #000,.1rem -.1rem #000,-.1rem .1rem #000}@media(prefers-color-scheme:dark){:root{--font-dm-mono:DM Mono,DM Mono Fallback;--typography-h1:#fff;--typography-h2:#fff;--typography-h3:#fff;--typography-h4:#fff;--typography-h5:#fff;--typography-h6:#fff;--typography-p:#ccc;--typography-blockquote:#fff;--typography-a:#fff;--template-background:#050505;--template-border:#555;--template-stripes:#444;--scrollbar-track:#111;--scrollbar-thumb:#050505;--scrollbar-hover:#222;--page-body-button-border-bottom:#fff;--page-body-button-color:#fff;--anchor-color:#f5f5f5;--anchor-color-hover:#E91E63;--areatitle-color:#111;--areatitle-text-shadow:.05rem 0 #fff,-.05rem 0 #fff,0 .05rem #fff,0 -.05rem #fff,.05rem .05rem #fff,-.05rem -.05rem #fff,.05rem -.05rem #fff,-.05rem .05rem #fff;--chip-background-color:rgba(255,255,255,.1);--chip-background-color-hover:rgba(255,255,255,.2);--tile-project-background:rgba(255,255,255,.1);--tabs-tab-color:#fff;--navigator-link-color:#fff;--navigator-link-color-hover:#E91E63;--navigator-link-color-active:#E91E63;--navigator-kanji-color:#888;--navigator-icon-color:#fff;--navigator-icon-color-hover:#23c89a;--background-color:#ccc;--code-color:#111;--footer-message-color:#ccc;--page-blog-text-shadow:.1rem 0 #fff,-.1rem 0 #fff,0 .1rem #fff,0 -.1rem #fff,.1rem .1rem #fff,-.1rem -.1rem #fff,.1rem -.1rem #fff,-.1rem .1rem #fff;--page-project-externallink-color:#fff;--page-project-externallink-color-hover:#fff;--page-project-externallink-background-hover:#23c89a;--page-not-found-number-color:#111;--page-not-found-number-text-shadow:.05rem 0 #fff,-.05rem 0 #fff,0 .05rem #fff,0 -.05rem #fff,.05rem .05rem #fff,-.05rem -.05rem #fff,.05rem -.05rem #fff,-.05rem .05rem #fff;--page-error-number-color:#111;--page-error-number-text-shadow:.05rem 0 #fff,-.05rem 0 #fff,0 .05rem #fff,0 -.05rem #fff,.05rem .05rem #fff,-.05rem -.05rem #fff,.05rem -.05rem #fff,-.05rem .05rem #fff}}h1{color:var(--typography-h1);font-size:4rem}h2{color:var(--typography-h2);font-size:3.6rem}h3{color:var(--typography-h3);font-size:3.2rem}h4{color:var(--typography-h4);font-size:2.8rem}h5{color:var(--typography-h5);font-size:2.4rem}h6{color:var(--typography-h6);font-size:2rem}blockquote{border-left:.2rem solid hsla(0,0%,100%,.5);color:var(--typography-blockquote);padding-left:1rem}blockquote,p{font-size:1rem;font-weight:300;line-height:2rem}p{color:var(--typography-p)}a{color:var(--typography-a);font-size:1rem;font-weight:300;line-height:2rem;text-decoration:none}.anchor__container{color:var(--anchor-color);font-weight:700;text-decoration:underline;width:-moz-fit-content;width:fit-content}.anchor__container:hover{color:var(--anchor-color-hover);text-decoration:underline}.anchor__container.uppercase{text-transform:uppercase}.area-title__label{color:var(--areatitle-color);margin-bottom:1.6rem;opacity:.3;text-shadow:var(--areatitle-text-shadow)}@media only screen and (max-width:64em){.area-title__label{font-size:2rem;margin-bottom:1rem}}.canvas{left:0;position:fixed;top:0;width:100vw;z-index:0}.chip__container{align-items:center;background-color:var(--chip-background-color);border-radius:.25rem;display:inline-flex;gap:.625rem;height:2rem;padding:.25rem .375rem;transition:all .3s ease-in-out}.chip__container:hover{background-color:var(--chip-background-color-hover);cursor:pointer}.chip__container .chip__image{height:1rem;width:1rem}.chip__container .chip__label{font-size:.875rem;font-weight:500}.code__container{background-color:var(--background-color);border-radius:.2rem;color:var(--code-color);font-family:var(--font-dm-mono);font-weight:500;padding:.1rem .2rem}.footer__container{align-items:center;bottom:0;display:flex;justify-content:flex-end;left:0;min-height:2.5rem;padding:0 2.5rem;position:absolute;width:100%;z-index:3}@media only screen and (max-width:64em){.footer__container{position:fixed;left:unset;min-height:2rem;padding:0 2rem;right:1.7rem;transform:rotate(90deg);transform-origin:bottom right;width:max-content}}@media only screen and (max-width:30em){.footer__container{min-height:1rem;padding:0 1rem;right:1.5rem}}.footer__container .footer__message{align-items:center;color:var(--footer-message-color);display:flex;gap:.4rem;justify-content:flex-end;font-size:.8rem;white-space:pre-wrap;text-align:right;width:100%}@media only screen and (max-width:30em){.footer__container .footer__message{font-size:.6rem}}.footer__container .footer__message a{font-size:.8rem}@media only screen and (max-width:30em){.footer__container .footer__message a{font-size:.6rem}}.loader__container{background-color:#111;height:100vh;left:0;position:fixed;display:flex;flex-direction:column;top:0;width:100vw;z-index:5}.navigator__container{align-items:center;display:flex;justify-content:space-between;gap:1rem;position:relative;z-index:3}.navigator__container .navigator__logo{background:none;box-shadow:none;border:0;font-family:var(--font-dm-mono);font-size:1rem;font-weight:500;letter-spacing:.2rem;outline:0;padding:.2rem .8rem;text-align:left;text-transform:uppercase}@media only screen and (max-width:64em){.navigator__container .navigator__logo{font-size:.75rem;line-height:1rem;padding:0}}@media only screen and (max-width:30em){.navigator__container .navigator__logo{font-size:.5rem;line-height:.75rem;padding:0}}.navigator__container .navigator__logo:hover{cursor:pointer}.navigator__container .navigator__links{align-items:center;display:flex;justify-content:space-between;gap:2rem}@media only screen and (max-width:30em){.navigator__container .navigator__links{gap:1rem}}.navigator__container .navigator__link{align-items:center;color:var(--navigator-link-color);display:flex;font-weight:400;gap:.4rem}.navigator__container .navigator__link-kanji{color:var(--navigator-kanji-color);transition:all .3s ease;white-space:nowrap}@media only screen and (max-width:64em){.navigator__container .navigator__link-name{display:none}}.navigator__container .navigator__link:hover{color:var(--navigator-link-color-hover);cursor:pointer}.navigator__container .navigator__link.active{color:var(--navigator-link-color-active);font-weight:700}@media only screen and (max-width:64em){.navigator__container .navigator__link.active .navigator__link-kanji{color:var(--navigator-link-color-active);font-weight:700}}.navigator__container .navigator__icon{align-items:center;display:flex;color:var(--navigator-icon-color);font-weight:400}.navigator__container .navigator__icon:hover{color:var(--navigator-icon-color-hover)}.photo-item__button{aspect-ratio:1;background:rgba(0,0,0,0);border:none;overflow:hidden;position:relative}.photo-item__image{cursor:pointer}.photo-item__image--preview{background-repeat:no-repeat;background-size:cover;background-position:50%;width:100%;height:100%}.photo-item__image--open{max-height:90%;max-width:90%}.photo-item__image--open,.photo-item__modal{left:50%;position:fixed;top:50%;transform:translate(-50%,-50%)}.photo-item__modal{background:rgba(0,0,0,.9);-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);align-items:center;display:flex;justify-content:center;height:100vh;width:100vw;z-index:5}.tabs__container{display:flex;gap:2rem}.tabs__container .tabs__tab{color:var(--tabs-tab-color);font-size:inherit;font-weight:500;letter-spacing:0;opacity:.2;transition:all .3s ease-in-out}.tabs__container .tabs__tab:hover{opacity:.5}.tabs__container .tabs__tab.active{opacity:1}.template__container{align-items:flex-start;background-color:var(--template-background);background-size:4rem 4rem;display:flex;flex-direction:column;min-height:100vh;padding:2.5rem;position:relative;overflow-x:hidden;width:100%}@media only screen and (max-width:64em){.template__container{padding:2rem}}@media only screen and (max-width:30em){.template__container{padding:1rem}}.template__container .template__content{min-height:calc(100vh - 5rem);height:auto;width:100%;z-index:3}@media only screen and (max-width:64em){.template__container .template__content{min-height:calc(100vh - 4rem)}}@media only screen and (max-width:30em){.template__container .template__content{min-height:calc(100vh - 2rem)}}.tile-project__container{align-items:center;border-radius:.5rem;display:flex;flex-direction:row;gap:1rem;padding:1rem;position:relative;transition:all .3s ease}.tile-project__container:hover{background-color:var(--tile-project-background)}@media only screen and (max-width:48em){.tile-project__container{padding:.5rem}}.tile-project__container .tile-project__content{display:flex;flex-direction:column;gap:.5rem;width:100%}.tile-project__container .tile-project__icon{background-color:#ccc;border:0;height:3rem;width:3rem;min-width:3rem}.tile-project__container .tile-project__title{font-size:1rem;font-weight:500}.tile-project__container .tile-project__description{display:block;font-size:.8rem;line-height:1rem;opacity:.8}.tile-project__container .tile-project__links{display:flex;gap:1.2rem}.page-body__container{display:flex;flex-direction:column;padding:5rem 0;margin:0 auto;max-width:48rem;min-height:calc(100vh - 12rem);width:100%}.page-body__container .page-body__content{flex:1 0 auto;display:flex;flex-direction:column;width:100%}.page-body__container .page-body__go-back{align-items:center;display:flex;flex-direction:row;font-family:var(--font-dm-mono);gap:.5rem;justify-content:center;padding:7.5rem 0 0;width:100%}.page-body__container .page-body__angular{opacity:.5}.page-body__container .page-body__go-back-button{background:rgba(0,0,0,0);border:0;color:var(--page-body-button-color);cursor:pointer;font-size:1.12rem;font-family:var(--font-dm-mono);font-weight:300;letter-spacing:0;opacity:.5;outline:0;position:relative;transition:all .3s ease-in-out}.page-body__container .page-body__go-back-button:after{background:rgba(0,0,0,0);bottom:0;content:"";display:block;height:.1rem;left:0;position:absolute;transition:width .3s ease,background-color .3s ease;width:0}.page-body__container .page-body__go-back-button:hover{opacity:1}.page-body__container .page-body__go-back-button:hover:after{background:var(--page-body-button-border-bottom);width:100%}.page-header__container{display:flex;flex-direction:column;gap:2.5rem;max-width:48rem;margin:0 auto 2.5rem;width:100%}.page-header__container .page-header__title{font-weight:700;width:100%}.page-header__container .page-header__subtitle{opacity:.8;font-style:italic;white-space:pre-wrap;width:100%}.page-header__container .page-data{opacity:.5;font-size:.8rem}.page-header__container.align-center{text-align:center}.page-about__container{max-width:40rem}.page-about__container .page-about__content{display:flex;flex-direction:column;gap:1.5rem;margin:0 auto;width:100%}.page-about__container .page-about__paragraph{opacity:0;transform:translateY(.5rem);transition:opacity .5s ease,transform .5s ease}.page-about__container .page-about__paragraph.show{opacity:1;transform:translateY(0)}.page-about__container .page-about__paragraph--caption{font-weight:500;margin:5rem 0 0}.page-about__container .page-about__paragraph--caption.show{opacity:.4}.page-blog__container{max-width:40rem}.page-blog__container .page-blog__year-container{position:relative;min-height:6rem}.page-blog__container .page-blog__year{color:var(--page-blog-color);font-size:6rem;opacity:.1;position:absolute;text-shadow:var(--page-blog-text-shadow);top:2rem;z-index:0}.page-blog__container .page-blog__item{display:block;margin-bottom:1rem;opacity:.7;position:relative;transition:all .3s ease-in-out;z-index:3}.page-blog__container .page-blog__item:hover{opacity:1}.page-blog__container .page-blog__item .page-blog__item-detail{font-size:.8rem;opacity:.6}.page-drawing__container{max-width:100%;width:100%}.page-drawing__container .page-drawing__content{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr;grid-template-rows:1fr;grid-gap:.5rem;gap:.5rem;margin:0 auto;width:100%}@media only screen and (max-width:64em){.page-drawing__container .page-drawing__content{grid-template-columns:1fr 1fr 1fr}}@media only screen and (max-width:48em){.page-drawing__container .page-drawing__content{grid-template-columns:1fr 1fr}}@media only screen and (max-width:30em){.page-drawing__container .page-drawing__content{grid-template-columns:1fr}}.page-error__container{align-items:center;display:flex;justify-content:center;flex-direction:column;max-width:100%}.page-error__container .page-error__number{color:var(--page-error-number-color);font-size:12rem;text-shadow:var(--page-error-number-text-shadow);opacity:.4}.page-error__container .page-error__paragraph{font-size:1rem;margin-bottom:2rem}.page-not-found__container{align-items:center;display:flex;justify-content:center;flex-direction:column;max-width:100%}.page-not-found__container .page-not-found__number{color:var(--page-not-found-number-color);font-size:12rem;text-shadow:var(--page-not-found-number-text-shadow);opacity:.4}.page-not-found__container .page-not-found__paragraph{font-size:1rem}.page-photo__container{max-width:100%;width:100%}.page-photo__container .page-photo__content{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr;grid-template-rows:1fr;grid-gap:.5rem;gap:.5rem;margin:0 auto;width:100%}@media only screen and (max-width:64em){.page-photo__container .page-photo__content{grid-template-columns:1fr 1fr 1fr}}@media only screen and (max-width:48em){.page-photo__container .page-photo__content{grid-template-columns:1fr 1fr}}@media only screen and (max-width:30em){.page-photo__container .page-photo__content{grid-template-columns:1fr}}.page-post__container{max-width:40rem}.page-post__container .page-post__content blockquote,.page-post__container .page-post__content p{margin-bottom:2rem}.page-project__container{max-width:100%}.page-project__container .page-project__content{display:flex;flex-direction:column;margin:0 auto;max-width:64rem;width:100%}.page-project__container .page-project__external-link{align-items:center;display:flex;flex-direction:row;justify-content:center;gap:1.5rem;margin-bottom:2rem}.page-project__container .page-project__link{align-items:center;background:rgba(0,0,0,0);border:.18rem solid var(--page-project-externallink-color);border-radius:.25rem;color:var(--page-project-externallink-color);display:flex;flex-direction:row;justify-content:space-between;font-size:.875rem;font-weight:700;gap:.5rem;opacity:.4;padding:.625rem 1rem;transition:all .3s ease-in-out}.page-project__container .page-project__link:hover{border-color:var(--page-project-externallink-background-hover);color:var(--page-project-externallink-color-hover);background-color:var(--page-project-externallink-background-hover);opacity:1}.page-project__container .page-project__section{margin-bottom:5rem}.page-project__container .page-project__section:last-of-type{margin-bottom:0}.page-project__container .page-project__grid{grid-column-gap:1.2rem;column-gap:1.2rem;display:grid;grid-template-columns:1fr 1fr 1fr;grid-row-gap:1.2rem;row-gap:1.2rem}@media only screen and (max-width:64em){.page-project__container .page-project__grid{grid-template-columns:1fr 1fr}}@media only screen and (max-width:48em){.page-project__container .page-project__grid{grid-template-columns:1fr}}.page-project__container .page-project__placeholder{font-style:italic;opacity:.7}*,:after,:before{margin:0;padding:0}*,:after,:before,html{box-sizing:border-box}body{flex:1 0 auto;font-family:var(--font-geist-sans);font-size:1.8rem;height:100%;letter-spacing:.1rem;margin:0;min-height:100vh;padding:0;position:relative}body b{font-weight:600}input{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}input:-webkit-autofill,input:-webkit-autofill:focus,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:focus,textarea:-webkit-autofill:hover{-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}input::-ms-clear{display:none}*{scrollbar-color:var(--scrollbar-track) var(--scrollbar-thumb)}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:10px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-hover)}@font-face{font-family:DM Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/8d0a1832fd3be0c8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Mono;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/d7df244fe7b07b95-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64418ffc17e50301-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/0e96d314a90a6138-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ba43ea3467e29870-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b7ea2ab4a8ad1f81-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:DM Mono Fallback;src:local("Arial");ascent-override:73.71%;descent-override:23.03%;line-gap-override:0.00%;size-adjust:134.59%}.__className_d02b1f{font-family:DM Mono,DM Mono Fallback;font-style:normal}.__variable_d02b1f{--font-dm-mono:"DM Mono","DM Mono Fallback"}@font-face{font-family:GeistSans;src:url(/_next/static/media/028c0d39d2e8f589-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local("Arial");ascent-override:85.83%;descent-override:20.53%;line-gap-override:9.33%;size-adjust:107.19%}.__className_fb8f2c{font-family:GeistSans,GeistSans Fallback}.__variable_fb8f2c{--font-geist-sans:"GeistSans","GeistSans Fallback"}