@import url(https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap);@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap&text=↑→↓←);#container{position:absolute;width:100%;height:100%;top:0;left:0;z-index:-1}:root{--fw-normal:600;--fw-light:500;--bg-primary:#000;--color-primary:#fff;--bg-secondary:#fff;--fsz-normal:12px;--fsz-big:2.125rem;--ff:"Inter";--btn-hover:#333;--color-secondary:#999;--border-color:#333;--transition-y:8px}body{overflow:hidden}@-webkit-keyframes transition-in{0%{opacity:0;transform:translateY(var(--transition-y))}to{opacity:1;transform:translateY(0)}}@keyframes transition-in{0%{opacity:0;transform:translateY(var(--transition-y))}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes transition-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(var(--transition-y))}}@keyframes transition-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(var(--transition-y))}}@-webkit-keyframes wave-animation{0%{transform:rotate(0deg)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}60%{transform:rotate(0deg)}to{transform:rotate(0deg)}}@keyframes wave-animation{0%{transform:rotate(0deg)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}60%{transform:rotate(0deg)}to{transform:rotate(0deg)}}*{box-sizing:border-box;margin:0;padding:0;font-family:var(--ff);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-primary)}body{background:var(--bg-primary);font-weight:var(--fw-normal);font-size:var(--fsz-normal)}canvas{max-width:100%!important;max-height:100%!important}.fade-enter-active{-webkit-animation:transition-in 1s ease;animation:transition-in 1s ease}.fade-enter-leave,.fade-leave-active{-webkit-animation:transition-out .3s ease;animation:transition-out .3s ease}nav[data-v-5379ae7d]{display:flex;justify-content:space-between;align-items:center;grid-area:nav;width:100%;max-width:640px;margin:0 auto;padding-bottom:12px;border-bottom:1px solid var(--border-color)}nav .home-link[data-v-5379ae7d]{display:flex;justify-content:flex-start;align-items:center}nav a[data-v-5379ae7d]{font-size:var(--fsz-normal);text-decoration:none}nav .logo span[data-v-5379ae7d],nav a[data-v-5379ae7d]{font-weight:var(--fw-normal)}nav .blog-link[data-v-5379ae7d]{display:inline-flex;align-items:center;gap:4px;color:var(--color-primary);border-bottom:1px solid var(--color-primary);padding-bottom:1px;transition:opacity .2s ease}nav .blog-link .ext-icon[data-v-5379ae7d]{opacity:.8}nav .blog-link[data-v-5379ae7d]:hover{opacity:.7}footer[data-v-0c293af1]{grid-area:footer;width:100%;max-width:640px;margin:0 auto;display:flex;align-items:center;justify-content:flex-end;gap:28px;padding:12px 0 0;border-top:1px solid var(--border-color)}footer a[data-v-0c293af1]{font-weight:var(--fw-normal);font-size:var(--fsz-normal);text-decoration:none}footer .link[data-v-0c293af1]{color:var(--color-secondary);transition:color .2s ease}footer .link[data-v-0c293af1]:hover{color:var(--color-primary)}@media screen and (max-width:900px){footer[data-v-0c293af1]{padding:16px 0;gap:16px}}.container[data-v-016ab20c]{padding:32px 64px;max-width:960px;width:100%;min-height:100vh;display:grid;margin:0 auto;grid-template-columns:1fr 1fr 1fr 1fr;grid-template-rows:40px auto 1fr auto;-moz-column-gap:24px;column-gap:24px;row-gap:24px;grid-template-areas:"nav    nav    nav    nav" "main   main   main   main" "detail detail detail detail" "footer footer footer footer"}@media screen and (max-width:900px){.container[data-v-016ab20c]{padding:20px 12px!important}}.main[data-v-209f1b9f]{position:relative;grid-area:main;grid-column-end:span 4;align-self:end}.main h1[data-v-209f1b9f]{font-size:var(--fsz-big);font-weight:500;line-height:1.2}.main h1 a[data-v-209f1b9f]{transition:all .3s ease;text-decoration:none!important;display:inline-block}.main h1 a[data-v-209f1b9f]:hover{color:#fff!important}.main h1 .sub[data-v-209f1b9f]{font-size:2rem}.main h1 .contact[data-v-209f1b9f]{font-size:4.5rem;color:#000;-webkit-text-stroke:1px #fff;padding-right:20px}.main h1 .main-contact[data-v-209f1b9f]{font-size:6rem}.main .work[data-v-209f1b9f]{display:none;border-radius:3rem;margin-top:12px;border:1px solid var(--bg-secondary);font-size:1.5rem!important;background:var(--bg-primary);padding:.75rem 1.5rem;cursor:pointer;-webkit-animation:hover ease;animation:hover ease;transition:.3s}.main .work[data-v-209f1b9f]:hover{background:var(--btn-hover);transition:.3s}.main .work a[data-v-209f1b9f]{font-size:1.5rem!important;font-weight:600}@media screen and (max-width:900px){.main a[data-v-209f1b9f]{font-size:2.5rem!important}.main .sub[data-v-209f1b9f]{display:inline-block;margin-bottom:1rem}.main .work[data-v-209f1b9f]{display:inline-block}}.main[data-v-17c4335a]{position:relative;grid-area:main;align-self:center;width:100%;display:flex;flex-direction:column;align-items:center;text-align:start;gap:16px}.main .hero-slider[data-v-17c4335a]{position:relative;width:100%;max-width:498px;aspect-ratio:498/241;overflow:hidden}.main .hero-img[data-v-17c4335a]{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;opacity:0;transition:opacity 1s ease}.main .hero-img.active[data-v-17c4335a]{opacity:1}.main h2[data-v-17c4335a]{font-size:var(--fsz-normal);font-weight:500;line-height:1.6;margin:0}.main .contact-row[data-v-17c4335a]{display:flex;align-items:center;gap:16px}.main .email-link[data-v-17c4335a]{display:inline-flex;align-items:center;gap:4px;text-decoration:none;font-size:var(--fsz-normal);line-height:1;height:16px;color:var(--color-primary);border-bottom:1px solid var(--color-primary);padding-bottom:1px;transition:opacity .2s ease}.main .email-link .ext-icon[data-v-17c4335a]{opacity:.8}.main .email-link[data-v-17c4335a]:hover{opacity:.7}.writeups[data-v-17c4335a]{grid-area:detail;align-self:end;width:100%;max-width:640px;margin:0 auto;text-align:start}.writeups .writeups-header[data-v-17c4335a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.writeups .writeups-title[data-v-17c4335a]{font-weight:400;font-size:var(--fsz-normal);color:var(--color-secondary);letter-spacing:.08em}.writeups .writeups-all[data-v-17c4335a]{font-size:var(--fsz-normal);color:var(--color-secondary);text-decoration:none;transition:color .2s ease}.writeups .writeups-all[data-v-17c4335a]:hover{color:var(--color-primary)}.writeups .writeup[data-v-17c4335a]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--border-color);border-radius:8px;text-decoration:none;font-size:var(--fsz-normal);margin-bottom:8px;transition:all .2s ease}.writeups .writeup .writeup-date[data-v-17c4335a]{color:var(--color-secondary);white-space:nowrap;flex-shrink:0}.writeups .writeup[data-v-17c4335a]:hover{border-color:var(--bg-secondary);transform:translateY(-2px)}.blog[data-v-423d2cc6]{grid-area:main;align-self:start;width:100%;max-width:640px;margin:0 auto;text-align:start}.blog-header[data-v-423d2cc6]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.blog-title[data-v-423d2cc6]{font-weight:400;letter-spacing:.08em}.blog-count[data-v-423d2cc6],.blog-title[data-v-423d2cc6]{font-size:var(--fsz-normal);color:var(--color-secondary)}.empty[data-v-423d2cc6]{color:var(--color-secondary);margin:0}.article-pill[data-v-423d2cc6]{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--border-color);border-radius:8px;text-decoration:none;color:var(--color-primary);margin-bottom:8px;transition:all .2s ease}.article-pill .thumb[data-v-423d2cc6]{width:48px;height:48px;flex-shrink:0;-o-object-fit:cover;object-fit:cover;border-radius:6px;border:1px solid var(--border-color)}.article-pill .meta[data-v-423d2cc6]{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.article-pill .row[data-v-423d2cc6]{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.article-pill .title[data-v-423d2cc6]{font-size:var(--fsz-normal);font-weight:500;line-height:1.3}.article-pill .date[data-v-423d2cc6]{color:var(--color-secondary);white-space:nowrap;flex-shrink:0}.article-pill .desc[data-v-423d2cc6]{margin:0;font-size:var(--fsz-normal);color:var(--color-secondary);line-height:1.4}.article-pill[data-v-423d2cc6]:hover{border-color:var(--bg-secondary);transform:translateY(-2px)}.post[data-v-5e9703b7]{grid-area:main;align-self:start;width:100%;max-width:640px;margin:0 auto;text-align:start;font-size:var(--fsz-normal);line-height:1.6}.status[data-v-5e9703b7]{color:var(--color-secondary)}.md[data-v-5e9703b7] h1{font-size:1.6rem;margin:0 0 16px;line-height:1.2}.md[data-v-5e9703b7] h2{font-size:1.3rem;margin:28px 0 12px;line-height:1.3}.md[data-v-5e9703b7] h3{font-size:1.1rem;margin:24px 0 10px}.md[data-v-5e9703b7] p{margin:0 0 14px}.md[data-v-5e9703b7] ol,.md[data-v-5e9703b7] ul{padding-left:22px;margin:0 0 14px}.md[data-v-5e9703b7] li{margin:4px 0}.md[data-v-5e9703b7] a{color:var(--color-primary);border-bottom:1px solid var(--color-primary);text-decoration:none}.md[data-v-5e9703b7] code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:hsla(0,0%,100%,.08);padding:1px 6px;border-radius:4px;font-size:.95em}.md[data-v-5e9703b7] pre{background:hsla(0,0%,100%,.05);border:1px solid var(--border-color);border-radius:8px;padding:12px 14px;overflow-x:auto;margin:0 0 16px}.md[data-v-5e9703b7] pre code{background:transparent;padding:0}.md[data-v-5e9703b7] blockquote{border-left:2px solid var(--border-color);padding-left:12px;color:var(--color-secondary);margin:0 0 14px}.md[data-v-5e9703b7] hr{border:0;border-top:1px solid var(--border-color);margin:24px 0}.md[data-v-5e9703b7] img{max-width:100%;height:auto}