@font-face{font-family:'Bitter';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/bitter-400-italic-latin-ext.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:'Bitter';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/bitter-400-italic-latin.woff2) format("woff2");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:'Bitter';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/bitter-400-latin-ext.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:'Bitter';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/bitter-400-latin.woff2) format("woff2");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:'Bitter';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/bitter-700-latin-ext.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:'Bitter';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/bitter-700-latin.woff2) format("woff2");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:'Open Sans';font-style:italic;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/open-sans-400-italic-latin-ext.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:'Open Sans';font-style:italic;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/open-sans-400-italic-latin.woff2) format("woff2");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:'Open Sans';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/open-sans-400-latin-ext.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:'Open Sans';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/fonts/open-sans-400-latin.woff2) format("woff2");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:'Open Sans';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/open-sans-700-latin-ext.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:'Open Sans';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(/fonts/open-sans-700-latin.woff2) format("woff2");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}:root{--text-color: #111;--background-color: #fdfdfd;--brand-color: #2568ba;--brand-color-visited: #1e5395;--grey-color: #828282;--grey-color-light: #e8e8e8;--grey-color-dark: #424242;--code-background-color: #f5f5f5;--form-background-color: #fff;--card-background-color: #fff}@media (prefers-color-scheme: dark){:root{--text-color: #e6e6e6;--background-color: #16181c;--brand-color: #79b0f0;--brand-color-visited: #a99bea;--grey-color: #9aa0a6;--grey-color-light: #2c3036;--grey-color-dark: #b9bfc6;--code-background-color: #21252b;--form-background-color: #1d2025;--card-background-color: #1d2025}}body,h1,h2,h3,h4,h5,h6,p,blockquote,pre,hr,dl,dd,ol,ul,figure{margin:0;padding:0}body{font:400 16px/1.5 Bitter,"Apple SD Gothic Neo",AppleGothic,NanumBarunGothic,"Malgun Gothic",Dotum,sans-serif;color:var(--text-color);background-color:var(--background-color);-webkit-text-size-adjust:100%;-webkit-font-feature-settings:"kern" 1;-moz-font-feature-settings:"kern" 1;-o-font-feature-settings:"kern" 1;font-feature-settings:"kern" 1;font-kerning:normal}table{width:100%;margin:0 0 20px 0;text-align:left}h1,h2,h3,h4,h5,h6,p,blockquote,pre,ul,ol,dl,figure,.highlight{margin-bottom:15px}img{max-width:100%;vertical-align:middle}figure>img{display:block}figcaption{font-size:14px}ul,ol{margin-left:30px}li>ul,li>ol{margin-bottom:0}h1,h2,h3,h4,h5,h6{font-weight:400}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{font-size:inherit}a{color:var(--brand-color);text-decoration:none}a:visited{color:var(--brand-color-visited)}a:hover{color:var(--text-color);text-decoration:underline}blockquote{color:var(--grey-color);border-left:4px solid var(--grey-color-light);padding-left:15px;font-size:18px;letter-spacing:-1px;font-style:italic}blockquote>:last-child{margin-bottom:0}hr{height:4px;margin:15px 0;border:0;background-color:var(--grey-color-light)}pre,code{font-family:Monaco,Menlo,Consolas,"Courier New",DotumChe,monospace;font-size:13px;border:1px solid var(--grey-color-light);border-radius:0;background-color:var(--code-background-color)}code{padding:1px 5px}pre{padding:8px 12px;overflow-x:auto}pre>code{border:0;padding-right:0;padding-left:0}main{margin:12px 12px}@media all and (min-width: 800px){main{margin:50px 50px}}.wrapper{display:flex;flex-flow:row wrap}.wrapper>*{flex:1 100%}.main{text-align:left}.sidebar-left a{margin-bottom:0.25em}.sidebar{flex:0 0 auto;max-width:600px}.main{flex:0 0 auto;width:calc(100% - 24px)}@media all and (min-width: 800px){.main{flex:0 0 auto;width:calc(100% - 180px - 100px);max-width:600px}.sidebar-left{order:1;max-width:180px}.main{order:2}}.pagination:after{content:"";display:table;clear:both}.site-header{min-height:56px;position:relative}.site-title{font-size:26px;font-weight:300;line-height:56px;letter-spacing:-1px;margin-bottom:0;float:left}.site-title,.site-title:visited{color:var(--grey-color-dark)}.site-nav{float:right;line-height:56px}.site-nav .page-link{color:var(--text-color);line-height:1.5}.site-nav .page-link:not(:last-child){margin-right:20px}@media screen and (max-width: 600px){.site-nav .page-link:not(:last-child){margin-right:0}}.site-footer{padding:30px 0;font-size:15px;color:var(--grey-color);text-align:center}.page-heading{font-size:20px}.post-list{margin-left:0;list-style:none}.post-list .post-link:hover{text-decoration:none}.post-list>li{margin-bottom:60px}.post-archives{margin-left:0;list-style:none}.post-archives .post-link{font-size:24px}.post-archives>li{margin-bottom:30px}.post-meta{font-size:14px;color:var(--grey-color)}.post-link,.post-link:visited{color:var(--text-color)}.post-link:hover{color:var(--brand-color)}.post-continue a{padding:8px 15px;text-decoration:none}.post-continue a,.post-continue a:visited{color:var(--grey-color);background-color:var(--grey-color-light)}.post-continue a:hover{color:white;background-color:var(--brand-color)}.post-header{margin-bottom:30px}.post-title{font-size:26px;letter-spacing:-1px;line-height:1}@media screen and (max-width: 800px){.post-title{font-size:36px}}.post-content{margin-bottom:30px}.post-content h2{font-size:22px}@media screen and (max-width: 800px){.post-content h2{font-size:28px}}.post-content h3{font-size:18px}@media screen and (max-width: 800px){.post-content h3{font-size:22px}}.post-content h4{font-size:14px}@media screen and (max-width: 800px){.post-content h4{font-size:18px}}.pagination{padding:15px 0;text-align:center}.pagination a,.pagination a:visited{color:var(--grey-color)}.pagination a:hover{color:var(--brand-color)}.pagination .previous{float:left}.pagination .next{float:right}.highlight{background-color:var(--code-background-color)}.highlighter-rouge .highlight{background-color:var(--code-background-color)}.highlight .c{color:#998;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{font-weight:bold}.highlight .o{font-weight:bold}.highlight .cm{color:#998;font-style:italic}.highlight .cp{color:#999;font-weight:bold}.highlight .c1{color:#998;font-style:italic}.highlight .cs{color:#999;font-weight:bold;font-style:italic}.highlight .gd{color:#000;background-color:#fdd}.highlight .gd .x{color:#000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000;background-color:#dfd}.highlight .gi .x{color:#000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{font-weight:bold}.highlight .kd{font-weight:bold}.highlight .kp{font-weight:bold}.highlight .kr{font-weight:bold}.highlight .kt{color:#458;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d14}.highlight .na{color:#008080}.highlight .nb{color:#0086B3}.highlight .nc{color:#458;font-weight:bold}.highlight .no{color:#008080}.highlight .ni{color:#800080}.highlight .ne{color:#900;font-weight:bold}.highlight .nf{color:#900;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:#000080}.highlight .nv{color:#008080}.highlight .ow{font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:#008080}.highlight .vg{color:#008080}.highlight .vi{color:#008080}.highlight .il{color:#099}h2,h3{margin-bottom:8px !important}p{font-family:"Open Sans", sans-serif}.sidebar-left,.site-nav{display:flex;flex-direction:column}.site-title{line-height:1.15em;margin-bottom:0.5em}.page-link.is-current{font-weight:700}.skip-link{position:absolute;left:-9999px;top:0;padding:0.5em 1em;background:var(--background-color);color:var(--text-color);z-index:10}.skip-link:focus{left:0}:focus-visible{outline:2px solid var(--brand-color);outline-offset:2px}.not-found{margin:10px auto;max-width:600px;text-align:center}.not-found h1{margin:30px 0;font-size:4em;line-height:1;letter-spacing:-1px}.profile-photo{width:150px;height:auto;border-radius:25px}.post-content img{max-width:100%;height:auto}#mc_embed_signup{clear:left;margin-top:30px;border:1px solid var(--grey-color-light);background:var(--form-background-color);font:14px Helvetica, Arial, sans-serif}#mc_embed_signup form{padding:1em}#mc_embed_signup label{display:block;margin-bottom:0.5em;color:var(--text-color)}#mc_embed_signup input.email{display:block;width:100%;box-sizing:border-box;padding:0.5em;margin-bottom:0.75em;border:1px solid var(--grey-color-light);border-radius:3px;background:var(--background-color);color:var(--text-color);font-size:1em}#mc_embed_signup input.button{padding:0.5em 1.25em;border:0;border-radius:3px;background:var(--brand-color);color:#fff;font-size:1em;cursor:pointer}#mc_embed_signup input.button:hover{background:var(--brand-color-visited)}.mc-bot-field{position:absolute;left:-5000px}@media all and (min-width: 800px){.main-wide{max-width:760px}}.projects .page-heading{font-size:32px;letter-spacing:-0.5px;margin-bottom:10px}.projects>p{font-family:"Open Sans", sans-serif;color:var(--grey-color-dark);max-width:34em}.tile-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));gap:26px 20px;margin:30px 0 0;padding:0;list-style:none}.tile{--accent: var(--brand-color)}.tile--every-golden-dragon{--accent: #b3261e}.tile--japan-train-explorer{--accent: #26435f}.tile--cradlesearch{--accent: #4a6350}.tile--inkdrift{--accent: #96650f}.tile--darwin-journal{--accent: #4a5da8}.tile--dokibo{--accent: #5b8060}.tile--chestnut{--accent: #1f5c22}@media (prefers-color-scheme: dark){.tile--every-golden-dragon{--accent: #f0907f}.tile--japan-train-explorer{--accent: #8ab6e0}.tile--cradlesearch{--accent: #9dbfa4}.tile--inkdrift{--accent: #e3b364}.tile--darwin-journal{--accent: #96a6e8}.tile--dokibo{--accent: #a6c9a8}.tile--chestnut{--accent: #8fc491}}.tile-link{display:block;color:var(--text-color);text-decoration:none}.tile-link:visited{color:var(--text-color)}.tile-link:hover{text-decoration:none}.tile-link:hover .tile-shot{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 8px 22px rgba(0,0,0,0.12)}.tile-link:hover .tile-title{color:var(--accent)}.tile-link:focus-visible{outline:none}.tile-link:focus-visible .tile-shot{outline:2px solid var(--accent);outline-offset:3px}.tile-shot{display:block;overflow:hidden;border:1px solid var(--grey-color-light);border-radius:8px;background:var(--card-background-color);transition:transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease}.tile-shot img{display:block;width:100%;height:auto;transition:filter 0.3s ease}@media (prefers-color-scheme: dark){.tile-shot img{filter:brightness(0.85)}.tile-link:hover .tile-shot img{filter:none}}.tile-caption{display:block;padding-top:10px}.tile-kicker{display:block;font-family:"Open Sans", sans-serif;font-size:11px;font-weight:700;letter-spacing:0.09em;text-transform:uppercase;color:var(--accent)}.tile-title{display:block;margin-top:1px;font-size:18px;line-height:1.2;transition:color 0.18s ease}.tile-tagline{display:block;margin-top:2px;font-family:"Open Sans", sans-serif;font-size:13px;color:var(--grey-color-dark)}.tile-note{display:block;margin-top:2px;font-family:"Open Sans", sans-serif;font-size:12px;font-style:italic;color:var(--grey-color)}.ancient{margin-top:54px}.ancient-summary{display:block;padding:10px 0;cursor:pointer;list-style:none}.ancient-summary::-webkit-details-marker{display:none}.ancient-summary:focus-visible{outline:none}.ancient-summary:focus-visible .ancient-label{outline:2px solid var(--brand-color);outline-offset:4px}.ancient-summary-row{display:flex;align-items:center;gap:9px;color:var(--grey-color-dark);transition:color 0.18s ease}.ancient-summary:hover .ancient-summary-row{color:var(--brand-color)}.ancient-label{font-family:"Open Sans", sans-serif;font-size:11px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;white-space:nowrap}.ancient-chevron{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(-45deg);transition:transform 0.18s ease}.ancient[open] .ancient-chevron{transform:translateY(-2px) rotate(45deg)}.ancient-rule{flex:1 1 auto;height:1px;background:var(--grey-color-light)}.ancient-intro{margin:14px 0 0;font-family:"Open Sans", sans-serif;font-size:13px;color:var(--grey-color)}.ancient .tile-grid{margin-top:20px}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}
