:root{color-scheme:light dark;--bg1: light-dark(#f9f6f1, #000000);--bg2: light-dark(#d2ccff, #776ad4);--bg3: light-dark(#e8e5e1, #575561);--bg4: light-dark(#fefcf9, #252525);--bg-gradient: linear-gradient( to right, light-dark(#e5d5fb, #8a69b7), light-dark(#d3ddfa, #7590e8) );--bg-gradient-alt: linear-gradient( to right, light-dark(#8a69b7, #e5d5fb), light-dark(#7590e8, #d3ddfa) );--text: light-dark(#111111, #fefcf9);--neutral: light-dark(#808080, #94928e);--ac1: light-dark(#7265d0, #d2ccff);--ac2: light-dark(#0f83cd, #b8e3ff);--pagefind-ui-primary: var(--text) !important;--pagefind-ui-text: var(--text) !important;--pagefind-ui-border: var(--bg3) !important;--pagefind-ui-background: var(--bg4) !important;.pagefind-ui__button:hover{border-color:var(--ac1)!important}.pagefind-ui__search-input:focus-visible{border:var(--ac1)!important}}:root[data-theme=system]{color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}html{background-color:var(--bg1);transition:color .4s}.bg1{background:var(--bg1)}.bg2{background:var(--bg2)}.bg3{background:var(--bg3)}.bg4{background:var(--bg4)}.bg-gradient{background:var(--bg-gradient)}.bg-ac1{background:var(--ac1)}.col-bg1{color:var(--bg1)}.col-bg2{color:var(--bg2)}.col-bg3{color:var(--bg3)}.col-bg4{color:var(--bg4)}.col-ac1{color:var(--ac1)}[data-theme=dark] pre,[data-theme=dark] pre span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important}:root{--ratio-xs: 1.2;--ratio-sm: 1.25;--ratio-base: 1.5;--ratio-lg: 2;--m-2xs: calc(var(--m-xs)/var(--ratio-lg));--m-xs: calc(var(--m-sm)/var(--ratio-lg));--m-sm: calc(var(--m-base)/var(--ratio-lg));--m-base: 25px;--m-lg: calc(var(--m-base)*var(--ratio-lg));--m-xl: calc(var(--m-lg)*var(--ratio-lg));--r-2xs: calc(var(--r-xs)/var(--ratio-base));--r-xs: calc(var(--r-sm)/var(--ratio-base));--r-sm: calc(var(--r-base)/var(--ratio-base));--r-base: 10px;--r-full: calc(infinity * 1px);--f-xs: calc(var(--f-sm)/var(--ratio-sm));--f-sm: calc(var(--f-base)/var(--ratio-sm));--f-base: 1rem;--f-lg: calc(var(--f-base)*var(--ratio-sm));--f-xl: calc(var(--f-lg)*var(--ratio-sm));--f-2xl: calc(var(--f-xl)*var(--ratio-sm));--f-3xl: calc(var(--f-2xl)*var(--ratio-sm));--line-sm: calc(var(--line-base)/var(--ratio-xs));--line-base: 1.5;--line-lg: calc(var(--line-base)*var(--ratio-xs))}@font-face{font-family:Ubuntu Sans Variable;font-style:normal;font-display:swap;font-weight:700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/ubuntu-sans:vf@latest/latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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:heading;src:local("Hiragino Kaku Gothic Pro W3"),local("Meiryo"),local("MS Gothic"),local("Noto Sans CJK JP"),sans-serif;font-weight:400}@font-face{font-family:heading;src:local("Hiragino Kaku Gothic Pro W6"),local("Meiryo Bold"),local("MS Gothic"),local("Noto Sans CJK JP"),sans-serif;font-weight:700}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(https://cdn.jsdelivr.net/fontsource/fonts/inter:vf@latest/latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,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:reading;src:local("Yu Gothic Medium"),local("MS Gothic"),local("Noto Sans CJK JP"),sans-serif;font-weight:400}@font-face{font-family:reading;src:local("Yu Gothic Bold"),local("MS Gothic"),local("Noto Sans CJK JP"),sans-serif;font-weight:700}@font-face{font-family:code;src:local("Andale Mono"),local("Consolas"),local("Yu Gothic Medium"),local("MS Gothic"),local("Noto Sans CJK JP"),monospace;font-weight:400}*{font-family:Inter Variable,reading,sans-serif;font-size:var(--f-base);color:var(--text);line-height:var(--line-base);overflow-wrap:anywhere;word-break:keep-all;line-break:strict}a{color:var(--text);text-decoration:none;&:hover{text-decoration:underline}}caption,figcaption,.caption,.caption *,.tags *{font-size:var(--f-sm);line-height:var(--line-base);font-style:italic}.font-sm{font-size:var(--f-sm);line-height:var(--line-base)}h1,h2,h3,h4,h5,h6,nav *,h2 mark,.intro .tagline,.article-title{font-family:Ubuntu Sans Variable,heading,sans-serif;font-weight:700}h1,.intro .tagline{font-size:var(--f-3xl);line-height:var(--line-sm)}h2{font-size:var(--f-2xl);line-height:var(--line-sm)}h3,.site-title a,.article-title{font-size:var(--f-xl);line-height:var(--line-sm)}h4,.nav-footer ul{font-size:var(--f-lg);line-height:var(--line-sm)}h5,h6{font-size:var(--f-base);line-height:var(--line-sm)}[data-icon]{color:var(--text)}video{margin:var(--m-base) auto}stacked-alpha-video{display:inline-block}stacked-alpha-video video{display:none}.button{display:block;width:-moz-fit-content;width:fit-content;margin:var(--m-sm) auto;padding:var(--m-sm) var(--m-base);border-radius:var(--r-full);text-decoration:none;color:var(--bg4);background:var(--ac1);transition-property:transform;transition-duration:.3s;transition-timing-function:ease-in-out;&:hover{text-decoration:none;background:var(--bg-gradient-alt);transform:scale(1.1);transition-property:transform;transition-duration:.2s;transition-timing-function:ease-in-out}&:active{text-decoration:none;background:var(--ac1);transform:scale(1.05);transition-property:transform;transition-duration:.2s;transition-timing-function:ease-in-out}&.light{color:var(--text);background:var(--bg2);&:hover{background:var(--bg-gradient)}}}body{min-height:100vh;display:flex;flex-direction:column}h1{width:100%;max-width:64rem;margin:0 auto;padding:var(--m-base)}.tagline+p{margin-bottom:var(--m-base)}.site-title{flex:1 1 auto}.heading-row{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;-moz-column-gap:var(--m-base);column-gap:var(--m-base)}figcaption{padding-bottom:var(--m-sm)}ol,ul,li{padding-bottom:var(--m-2xs);line-height:var(--line-lg)}ol{list-style:decimal}ul{list-style:disc}li{margin-left:1em}.article-list{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));overflow:hidden;align-items:baseline;gap:var(--m-lg);list-style:none}@media(min-width:768px){.article-list{grid-template-columns:repeat(3,minmax(0,1fr))}}.article-list{.list-item{gap:var(--m-base);margin-left:0}.list-item{display:flex}.list-item{flex-wrap:wrap}.list-item{div{width:100%;row-gap:var(--m-sm)}div{display:flex}div{flex-wrap:wrap}.image{overflow:hidden;border-radius:var(--r-base);width:100%;height:100%;&:hover img{transform:scale(1.2)}}img{aspect-ratio:16 / 9;-o-object-fit:cover;object-fit:cover;width:100%;height:auto;transition:all .3s ease-in-out}@media(min-width:768px){img{max-width:calc(64rem / 3)}}@media(min-width:768px){img{width:calc(100vw / 3)}}.article-title{width:100%}}@media(min-width:768px){&.horizontal{display:flex}}@media(min-width:768px){&.horizontal{flex-wrap:wrap}}&.horizontal{.list-item{flex-wrap:wrap}@media(min-width:768px){.list-item{flex-wrap:nowrap}}@media(min-width:768px){.image{flex:1}}img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.postinfo{row-gap:var(--m-sm);place-self:start}@media(min-width:768px){.postinfo{flex:3}}.postinfo{.article-title{font-size:var(--f-lg)}}}&.column-4{width:100%;max-width:100vw;gap:var(--m-sm)}&.column-4{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:768px){&.column-4{grid-template-columns:repeat(4,minmax(0,1fr))}}&.column-4{.list-item{margin-bottom:auto}a{position:relative;border-radius:var(--r-base);span.article-title{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--r-base);border-radius:inherit;color:var(--bg4);background:var(--bg-gradient-alt);opacity:0;transition:all .3s ease-in-out;&:hover{opacity:.9;transition:all .3s ease-in-out}}img{aspect-ratio:1 / 1;-o-object-fit:cover;object-fit:cover;width:100%;height:auto;max-width:50vw}@media(min-width:768px){img{max-width:16rem}}}}}.tags{gap:var(--m-sm);list-style-type:none;display:flex;flex-wrap:wrap}.tag{background-color:var(--bg2);padding:var(--m-2xs) var(--m-xs);border-radius:var(--r-base) var(--r-2xs) var(--r-base) var(--r-2xs);width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content;margin-left:0;&:hover{background:var(--bg-gradient)}a{color:var(--text);text-decoration:none;&:hover{color:var(--text);text-decoration:none}}}th,tr,td{padding:var(--m-xs);border:1px solid var(--neutral)}th{background:var(--bg3);color:var(--text)}blockquote,pre{padding:var(--m-sm);margin-bottom:var(--m-base);background:var(--bg3);border-radius:var(--r-2xs)}blockquote{border-left:var(--m-xs) var(--ac1) solid}pre{counter-reset:line;>*{font-family:code}.line{counter-increment:line;&:before{content:counter(line);display:inline-block;width:var(--f-xl);margin-right:var(--m-2xs);font-size:var(--f-sm);color:#fff;opacity:.5}}}.wrapper{width:100%;max-width:64rem;margin:0 auto auto;padding:var(--m-base);&:has(+footer){margin-bottom:var(--m-lg)}}.flex-container{display:flex;flex-wrap:wrap;gap:var(--m-base);align-items:stretch;justify-content:center}nav{padding-top:var(--m-base);padding-bottom:var(--m-base);display:flex;height:100%;align-items:center;&.nav-main{padding:var(--m-base);.nav-links{font-family:Ubuntu Sans Variable,heading,sans-serif;-moz-column-gap:var(--m-xs);column-gap:var(--m-xs);background:var(--bg1);background-size:100vw;background-position:right;overflow:hidden;transition-property:width;transition-timing-function:ease-in-out;transition-duration:.5s}.nav-links{position:absolute}.nav-links{top:0;bottom:0}.nav-links{right:0}.nav-links{z-index:50}.nav-links{margin-top:80px}.nav-links{max-height:100%}.nav-links{width:0px}@media(min-width:768px){.nav-links{position:relative}}@media(min-width:768px){.nav-links{margin-top:0}}@media(min-width:768px){.nav-links{display:flex}}@media(min-width:768px){.nav-links{max-height:100vh}}@media(min-width:768px){.nav-links{width:auto}}@media(min-width:768px){.nav-links{flex-direction:row}}@media(min-width:768px){.nav-links{align-items:center}}@media(min-width:768px){.nav-links{--tw-animate-direction: normal;animation-direction:var(--tw-animate-direction)}}@media(min-width:768px){.nav-links{background:transparent}}.nav-links{&.bg-gradient{background:var(--bg-gradient);background-size:100vw;background-position:right}@media(min-width:768px){&.bg-gradient{background:transparent}}a{display:flex;flex-direction:column;overflow:hidden;white-space:nowrap;text-overflow:clip}a{align-items:center}a{padding-top:1rem;padding-bottom:1rem}a{font-weight:700}@media(min-width:768px){a{padding-left:.5rem;padding-right:.5rem}}@media(min-width:768px){a{padding-top:.5rem;padding-bottom:.5rem}}@media(min-width:768px){a{overflow:unset}}@media(min-width:768px){a{text-overflow:unset}}@media(min-width:768px){a{white-space:unset}}a,select{padding:var(--m-xs);border-radius:var(--r-sm);text-decoration:none;transition:background-color .3s ease-in-out}a:hover,select:hover,select:focus{background-color:var(--bg2);text-decoration:none;transition:background-color .3s ease-in-out}.lang{font-size:var(--f-xs);line-height:var(--line-base)}.nav-desktop{display:none}@media(min-width:768px){.nav-desktop{display:flex}}.nav-mobile{display:flex}@media(min-width:768px){.nav-mobile{display:none}}}.nav-links.expanded{width:100%}.hamburger{cursor:pointer}.hamburger{margin-left:1.25rem}.hamburger{margin-top:.25rem}@media(min-width:768px){.hamburger{display:none}}.hamburger{.line{display:block;width:28px;height:3px;margin-bottom:6px;border-radius:var(--r-full);background-color:var(--text)}}#color-scheme{margin:0 0 0 var(--m-2xs);justify-content:center}#color-scheme{display:flex}#color-scheme{align-items:center}@media(min-width:768px){#color-scheme{justify-content:flex-start}}#color-scheme{select{-webkit-appearance:base-select;-moz-appearance:base-select;appearance:base-select;&:open{transition:unset}&:not(:open){background:transparent}}select,select *{font-size:.875rem;line-height:1.25rem}}}}.box{border-radius:10px;padding:3px;background:var(--bg-gradient);width:100%;display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center}@media(min-width:768px){.box{flex-wrap:nowrap}}.box{.box-content{width:100%;padding:var(--m-base);-moz-column-gap:var(--m-base);column-gap:var(--m-base);row-gap:var(--m-xs);background:var(--bg4);border-radius:7px}.box-content{display:flex}.box-content{flex-wrap:wrap}.box-content{align-items:stretch}.box-content{justify-content:center}.box-content{.info{width:100%;&:last-child{height:100%}}.type{color:var(--ac1);font-weight:700}@media(min-width:768px){.type{text-align:center}}}p{margin-bottom:var(--m-2xs);&:last-child{height:100%}}}@media(min-width:768px){.work-type.flex-container{flex-wrap:nowrap}}.work-type.flex-container{@media(min-width:768px){.box{flex-wrap:nowrap}}.box{.box-content{flex-wrap:nowrap}@media(min-width:768px){.box-content{flex-wrap:wrap}}}}.dark .flex-container .box{background:var(--bg-gradient)}.box-image{color:var(--text);margin:auto}@media(min-width:768px){.box-image{margin:0}}.box-image{img,svg{width:80px;height:80px;margin:auto}}article,section{row-gap:var(--m-base);#article-info{display:flex;flex-wrap:wrap;-moz-column-gap:var(--m-sm);column-gap:var(--m-sm);row-gap:var(--m-sm);margin-bottom:var(--m-lg);.description{width:100%}.project-info{display:flex;flex-wrap:wrap;width:100%;gap:var(--m-base);li{list-style-type:none;margin-left:0;font-size:var(--f-sm);line-height:var(--line-base);font-style:italic}}}.heroimage{margin-bottom:var(--m-base)}}section{display:flex;flex-direction:column;&:not(:last-child){margin-bottom:var(--m-lg)}}article{h2{&:not(:first-child){padding-top:var(--m-lg)}}h3{padding-top:var(--m-base);padding-bottom:var(--m-base)}h4{padding-top:var(--m-sm);padding-bottom:var(--m-sm)}h5{padding-top:var(--m-xs);padding-bottom:var(--m-xs)}h6{padding-top:var(--m-2xs);padding-bottom:var(--m-2xs)}p+p,ul+p,ol+p{padding-top:var(--m-xs);padding-bottom:var(--m-2xs)}ul+h2,ol+h2,ul+h3,ol+h3,ul+h4,ol+h4,ul+h5,ol+h5,ul+h6,ol+h6{padding-top:var(--m-lg);padding-bottom:var(--m-base)}p+ul,p+ol{padding-top:var(--m-xs)}p img{padding-top:var(--m-sm)}>img{padding-top:var(--m-sm)}}article a,.alink{text-decoration:underline;color:var(--ac1);&:hover{color:var(--ac2);text-decoration:none}}.image-grid{display:grid;gap:var(--m-base)}@media(min-width:768px){.image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.image-grid{img{border-radius:unset}}article .list-item{padding-top:var(--m-base)}nav.pagination{text-align:center;ul{display:flex;flex-direction:row;list-style:none}ul{margin:auto}ul{height:100%}ul{align-items:center}a{padding-left:var(--m-sm);padding-right:var(--m-sm);border-radius:var(--r-full);&.transparent{visibility:hidden}}.current-page{padding:var(--m-sm)}}nav.prev-next{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;-moz-column-gap:var(--m-base);column-gap:var(--m-base);margin-top:var(--m-lg);p{display:flex;flex:auto;flex-wrap:nowrap;align-items:center;-moz-column-gap:var(--m-2xs);column-gap:var(--m-2xs);span{height:100%}&.prev{justify-content:end}}}footer{margin-top:auto;padding-top:var(--m-base);padding-bottom:var(--m-base);background:var(--bg-gradient);nav.nav-footer{align-items:baseline;-moz-column-gap:var(--m-lg);column-gap:var(--m-lg);flex-wrap:wrap}@media(min-width:768px){nav.nav-footer{flex-wrap:nowrap}}nav.nav-footer{ul{line-height:var(--line-lg);width:100%}@media(min-width:768px){ul{width:auto}}ul{&:not(:last-child){padding-bottom:var(--m-base)}}li{list-style-type:none;margin-left:0;a{font-family:Inter Variable,reading,sans-serif;font-weight:400;&:hover{color:var(--ac1);text-decoration:underline}}}}.copyright{font-size:var(--f-sm);line-height:var(--line-base);text-align:center}}@keyframes fade-down{0%{opacity:0;transform:translateY(-2rem)}to{opacity:1;transform:translateY(0)}}.fade-down{animation:fade-down var(--tw-animate-duration, 1s) var(--tw-animate-easing, ease) var(--tw-animate-delay, 0s) var(--tw-animate-iteration, 1) var(--tw-animate-fill, both);--tw-animate-iteration: 1;animation-iteration-count:var(--tw-animate-iteration)}@keyframes fade-left{0%{opacity:0;transform:translate(2rem)}to{opacity:1;transform:translate(0)}}.fade-left{animation:fade-left var(--tw-animate-duration, 1s) var(--tw-animate-easing, ease) var(--tw-animate-delay, 0s) var(--tw-animate-iteration, 1) var(--tw-animate-fill, both);--tw-animate-iteration: 1;animation-iteration-count:var(--tw-animate-iteration)}@keyframes fade-right{0%{opacity:0;transform:translate(-2rem)}to{opacity:1;transform:translate(0)}}.fade-right{animation:fade-right var(--tw-animate-duration, 1s) var(--tw-animate-easing, ease) var(--tw-animate-delay, 0s) var(--tw-animate-iteration, 1) var(--tw-animate-fill, both);--tw-animate-iteration: 1;animation-iteration-count:var(--tw-animate-iteration)}@keyframes button-down{to{transform:translateY(5px)}}
