body{margin:0;touch-action:manipulation}:root{--app-height: 100vh}:before,:after,*{box-sizing:border-box}*{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}*[hidden]{display:none}body{line-height:1.5}menu,ol,ul,li{list-style:none;list-style-type:none}blockquote,q{quotes:none}b,strong{font-weight:bolder}select{text-transform:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}button{cursor:pointer;background:transparent;background-image:none}button:focus-visible{outline:0}::-moz-focus-inner{border-style:none;padding:0}:-moz-ui-invalid{box-shadow:none}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}img,video{width:100%;max-width:100%;height:auto}video{pointer-events:none}input:focus-visible{outline:none}a:active,a:focus-visible,a:visited,a{outline:none;text-decoration:none}body,canvas,.htibtn{-webkit-user-select:none;-webkit-touch-callout:none}img{font-size:0;border:0;outline:0;user-select:none}textarea{outline:none;border:none}:root{--defaultColor: #FAF5F0;--hlColor: #f9b639;--mainEasing: cubic-bezier(.25, 1, .5, 1)}.relative{position:relative}.vhidden{visibility:hidden}.dnone{display:none!important}.fixed{position:fixed}.fixed-full{position:fixed;inset:0}.z1{z-index:1}.z2{z-index:2}.flx{display:flex}.flx-column{display:flex;flex-direction:column}.flx-center{display:flex;align-items:center;justify-content:center}.abs-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.space-between{justify-content:space-between}.align-start{align-items:flex-start}.align-center{align-items:center}.w-100{width:100%}.mh-100{min-height:100vh}.pb-30{padding-bottom:30px}h1{font-size:64px;font-weight:400;line-height:110%}h3{font-size:40px;font-weight:500}h6{font-weight:600}p{font-size:16px;line-height:180%}.small-txt{text-align:center;font-size:12px;font-weight:400;line-height:140%}.unselectable{user-select:none;pointer-events:none}.udragnone{user-select:none;-webkit-user-drag:none}.gyro-activate{pointer-events:none}.gyro-activate.show{pointer-events:all;position:fixed;inset:0;z-index:100000;opacity:0}.tab-nav-btn{color:#faf5f0;font-size:12px;font-weight:600;line-height:100%;padding:16px 10px;opacity:.5;transition:opacity .3s ease}@media all and (pointer: fine){.tab-nav-btn:hover,.tab-nav-btn:focus-visible{opacity:1}}.tab-nav-btn.active{opacity:1;pointer-events:none}.mask-appear{mask-image:linear-gradient(90deg,black 0%,black calc(var(--apg-2) * 100%),transparent calc(var(--apg-1) * 100%),transparent 100%);-webkit-mask-image:linear-gradient(90deg,black 0%,black calc(var(--apg-2) * 100%),transparent calc(var(--apg-1) * 100%),transparent 100%)}.mask-l1,.mask-l2{position:absolute;left:0;top:0;pointer-events:none;user-select:none;padding:0 10px}.light-txt{opacity:.5;padding:0 10px}.mask-l1{color:var(--hlColor);z-index:1}.mask-l2{z-index:2}.anim-mask-grp{opacity:0}.anim-mask-grp.show{opacity:1;transition:opacity .4s ease}.ha-itm{position:relative;overflow:hidden}.ha-txtb{position:absolute;top:0;left:0;color:var(--hlColor);z-index:-1;transform:translate3d(100%,0,0)}.ha-txto{display:flex;transition:transform .5s ease}.ha-txto.ht-1{transition-delay:15ms;transition-timing-function:var(--mainEasing)}.ha-txto.ht-1.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-2{transition-delay:.03s}.ha-txto.ht-3{transition-delay:45ms}.ha-txto.ht-4{transition-delay:.06s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-4.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-5{transition-delay:75ms}.ha-txto.ht-5.ha-txtb{transform:translate3d(-100%,0,0) skew(-10deg)}.ha-txto.ht-6{transition-delay:.09s}.ha-txto.ht-7{transition-delay:.105s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-7.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-8{transition-delay:.12s}.ha-txto.ht-9{transition-delay:.135s}.ha-txto.ht-9.ha-txtb{transform:translate3d(-100%,0,0) skew(-10deg)}.ha-txto.ht-10{transition-delay:.15s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-10.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-11{transition-delay:.165s}.ha-txto.ht-12{transition-delay:.18s}.ha-txto.ht-13{transition-delay:.195s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-13.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-13.ha-txtb{transform:translate3d(-100%,0,0) skew(-10deg)}.ha-txto.ht-14{transition-delay:.21s}.ha-txto.ht-15{transition-delay:.225s}.ha-txto.ht-16{transition-delay:.24s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-16.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-17{transition-delay:.255s}.ha-txto.ht-17.ha-txtb{transform:translate3d(-100%,0,0) skew(-10deg)}.ha-txto.ht-18{transition-delay:.27s}.ha-txto.ht-19{transition-delay:.285s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-19.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-20{transition-delay:.3s}.ha-txto.ht-21{transition-delay:.315s}.ha-txto.ht-21.ha-txtb{transform:translate3d(-100%,0,0) skew(-10deg)}.ha-txto.ht-22{transition-delay:.33s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-22.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-23{transition-delay:.345s}.ha-txto.ht-24{transition-delay:.36s}.ha-txto.ht-25{transition-delay:.375s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-25.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-25.ha-txtb{transform:translate3d(-100%,0,0) skew(-10deg)}.ha-txto.ht-26{transition-delay:.39s}.ha-txto.ht-27{transition-delay:.405s}.ha-txto.ht-28{transition-delay:.42s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-28.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-29{transition-delay:.435s}.ha-txto.ht-29.ha-txtb{transform:translate3d(-100%,0,0) skew(-10deg)}.ha-txto.ht-30{transition-delay:.45s}.ha-txto.ht-31{transition-delay:.465s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-31.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-32{transition-delay:.48s}.ha-txto.ht-33{transition-delay:.495s}.ha-txto.ht-33.ha-txtb{transform:translate3d(-100%,0,0) skew(-10deg)}.ha-txto.ht-34{transition-delay:.51s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-34.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-35{transition-delay:.525s}.ha-txto.ht-36{transition-delay:.54s}.ha-txto.ht-37{transition-delay:.555s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-37.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txto.ht-37.ha-txtb{transform:translate3d(-100%,0,0) skew(-10deg)}.ha-txto.ht-38{transition-delay:.57s}.ha-txto.ht-39{transition-delay:.585s}.ha-txto.ht-40{transition-delay:.6s;transition-timing-function:var(--mainEasing)}.ha-txto.ht-40.ha-txtb{transform:translate3d(-100%,0,0) skew(10deg)}.ha-txt{transform:translateZ(0)}.ha-mask{position:absolute;left:10px;top:0;z-index:1}@media all and (max-width: 1110px){h1{font-size:60px}}@media all and (max-width: 590px){h1{font-size:8.8vw}h3{font-size:7.4vw}}header{position:fixed;top:40px;left:40px;z-index:3;width:calc(100% - 80px);max-width:1500px;margin:0 auto;align-items:center;pointer-events:none}header a{pointer-events:all}@media all and (min-width: 1500px){header{left:50%;transform:translate3d(-50%,0,0);width:100%;max-width:1420px}}.logomark-header,.logotext-header{padding:10px;font-size:0}.logomark-header:focus-visible,.logotext-header:focus-visible{opacity:.7}.logotext-header{height:50px;position:absolute;left:50%;transform:translate3d(-50%,0,0);top:0}.header-btn{color:var(--color-text-primary);font-size:12px;font-weight:600;height:50px;padding:8px;overflow:hidden;-webkit-user-drag:none;user-select:none;transition:opacity .5s var(--mainEasing)}.header-btn.active{pointer-events:none;opacity:.7}.menu-btn{padding:10px;height:50px}@media all and (max-width: 768px){header{top:20px;left:20px;right:20px;width:calc(100% - 40px)}}@media screen and (orientation: landscape) and (max-width: 812px){header{top:10px}}main,section,.sec-layout{margin:0 auto;max-width:1500px;width:100%;padding:0 50px}.content{max-width:700px;margin:0 auto}.top-header{max-width:920px;padding-top:30px;padding-bottom:60px}.art-meta{padding:30px 0;align-items:center;gap:30px;flex-wrap:wrap}.author-container{gap:14px}.author-image{width:44px;height:44px;overflow:hidden}.author-info{gap:8px}.author-name,.author-role{line-height:100%}.author-name{font-size:14px;font-weight:400}.author-role{color:#e0e0e0;font-size:11px}.tags{gap:6px;font-size:14px}.markdown-content{padding:0 0 120px}.markdown-content{flex:1}.markdown-content .main-title{font-size:2.5rem;font-weight:700;margin-bottom:2rem;color:#f1f1f1}h1{font-size:48px;line-height:120%;font-weight:700;text-align:center}h1.tblog{text-align:left;padding:30px 0 0}.content h2{font-weight:600;color:#f1f1f1;font-size:36px;line-height:130%;margin-top:4rem;margin-bottom:1rem}.content h3{font-weight:600;color:#f1f1f1;font-size:24px;line-height:140%;margin-top:3rem;margin-bottom:.75rem;color:#ebebeb}.content h4{font-weight:600;color:#f1f1f1;font-size:20px;line-height:150%;margin-top:2rem;margin-bottom:.5rem;color:#ebebeb}.content p{color:#f3f3f3;margin-bottom:2rem}.content ul,.content ol{margin-bottom:1rem;padding-left:1.5rem}.content li{margin-bottom:1rem}.content blockquote{border-left:4px solid #f9b639;padding-left:1rem;font-style:italic;margin:1.5rem 0;color:#4a5568}.content code:not([class*=language-]){font-family:Menlo,Monaco,Courier New,monospace;background-color:#edf2f7;padding:.2rem .4rem;border-radius:.25rem;font-size:.875rem}.content pre{margin:1.5rem 0}.content a{color:#f9b639;text-decoration:underline}.content a:hover{color:#f9b639}.content table{width:100%;border-collapse:collapse;margin:1.5rem 0}.content table th{background-color:#363636;font-weight:600;text-align:left;padding:.75rem;border:1px solid #e2e8f0}.content table td{padding:.75rem;border:1px solid #e2e8f0}.content table tr:nth-child(2n){background-color:#1a1a1a}.content img{max-width:100%;height:auto;margin:1.5rem 0}.content hr{border:0;height:1px;background-color:#e2e8f0;margin:2rem 0}@media (max-width: 768px){.markdown-container{flex-direction:column}}@media (max-width: 768px){.table-of-contents{position:relative;width:100%;margin-bottom:2rem}}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:none;font-family:Fira Code,Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;tab-size:4;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2b2b2b}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#8292a2}.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.property,.token.tag,.token.constant,.token.symbol,.token.deleted{color:#ff79c6}.token.boolean,.token.number{color:#bd93f9}.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#50fa7b}.token.operator,.token.entity,.token.url,.language-css .token.string,.style .token.string{color:#f8f8f2}.token.atrule,.token.attr-value,.token.keyword{color:#ff79c6}.token.function,.token.class-name{color:#ffb86c}.token.regex,.token.important,.token.variable{color:#f1fa8c}@media all and (max-width: 1024px){.top-header{padding:25px 0 30px}main,section,.sec-layout{padding:0 30px}}@media all and (max-width: 980px){h1{font-size:36px;line-height:130%}.content h2{font-size:24px;line-height:140%}.content h3{font-size:20px;line-height:150%}.content h4{font-size:18px;line-height:160%}}@media all and (max-width: 768px){main,section,.sec-layout{padding:0 20px}.top-header{padding:0 0 30px}h1.tblog{padding:0}}@media all and (max-width: 767px){h1{font-size:28px;line-height:130%}}@media all and (max-width: 520px){.author-container{display:none}.art-meta{justify-content:center}}footer{position:relative;z-index:2}footer p,footer span{font-size:12px;color:#b3b3b3;line-height:110%}.footer-col-links{width:100%;max-width:500px;justify-content:space-between;flex-wrap:wrap;gap:48px;padding:0 0 60px}.footer-cnt{position:relative;padding:60px 0}.footer-cnt p{position:absolute;left:50%;top:50%;white-space:nowrap;transform:translate3d(-50%,-50%,0)}.copyright a{color:#b3b3b3}.footer-cat-title{color:#b3b3b3;font-weight:700;font-size:10px;text-transform:uppercase}.footer-bottom{gap:24px}.footer-links{max-width:240px;gap:2px;position:relative;top:-4px}.footer-links li{display:flex}.sns-link{display:flex;padding:3px 10px;font-size:12px;text-transform:uppercase;color:#faf5f0}@media all and (pointer: fine){.sns-link{transition:color .3s ease}.sns-link:hover,.sns-link:focus-visible{color:var(--hlColor)}}@media all and (max-width: 920px){.footer-cnt{padding:60px 0}}@media all and (max-width: 768px){.footer-cnt{padding:40px 0}.footer-cnt p{display:none}.footer-col-links{max-width:450px}}@media all and (max-width: 640px){.footer-cat-title{min-width:60px}}.work{justify-content:space-between;flex-wrap:wrap;gap:30px;padding:45px 0 160px}.work li{width:calc(50% - 15px);min-width:420px}.work-item,.work-item-content{display:flex;flex-direction:column}.work-item{gap:20px}@media all and (pointer: fine){.work-item .wic-title{transition:color .3s var(--mainEasing)}.work-item:hover .wic-title{color:var(--hlColor)}}.work-item-content{gap:6px}.wic-title{font-size:20px;color:var(--defaultColor);max-width:520px;line-height:140%}.work-item-date{color:#b3b3b3;font-size:12px}@media all and (max-width: 1200px){.work{gap:30px 16px}.work li{width:calc(50% - 8px)}}@media all and (max-width: 940px){.work li{width:100%;max-width:620px;min-width:100%}}@media all and (max-width: 768px){.wic-title{font-size:18px}.work-item{gap:16px}.work{padding:30px 0 120px}}@font-face{font-family:PPMori;src:url(/fonts/PPMori-ExtraLight.woff2) format("woff2");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:PPMori;src:url(/fonts/PPMori-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:PPMori;src:url(/fonts/PPMori-Medium.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:PPMori;src:url(/fonts/PPMori-SemiBold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}.ds-x{font-family:Arial Unicode MS,Noto Sans Symbols,Segoe UI Symbol,sans-serif;transform:translateY(-1px)}html{width:100%;min-height:100vh}main{padding-top:120px}body{font-family:PPMori,Roboto,Open Sans,Lato,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,Hiragino Sans,Meiryo,Hiragino Kaku Gothic ProN,sans-serif;font-weight:400;font-style:normal;font-size:16px;line-height:1.5;color:#faf5f0;background-color:#111;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background-color:var(--hlColor);color:#111}h1,h2,h3,h4,h5,h6,p,li,td,th{user-select:text}.table-of-contents{display:none}@media all and (pointer: fine){.simple-hover:hover .ha-txtb,.simple-hover:focus-visible .ha-txtb{transform:translateZ(0)}.simple-hover:hover .ha-txt,.simple-hover:focus-visible .ha-txt{transform:translate3d(-100%,0,0)}}
