body{font-family:"PT Serif",Georgia,Times New Roman,serif;font-size:18px;color:#505050;line-height:1.75rem}@media (max-width:30em){body{font-size:14px;line-height:1.5rem}body h1{font-size:1.5rem}}h1{font-size:2rem}h1 a{text-decoration:none}h1,h2,h3,h4,h5,h6{font-family:Quattrocento Sans,sans-serif;color:#333}a{text-decoration:underline;color:#333}a:hover{color:#000;border-bottom:none}img{max-width:100%;height:auto;border-radius:5px}blockquote{margin:10px 20px 10px;padding:0 15px;border-left:.25em solid #ccc;color:#999;line-height:1.5}hr{border-top:1px solid #ccc}table{border-collapse:collapse;margin-bottom:30px;width:100%}table,td,th{border:1px solid #000}td,th{padding:15px;text-align:left}code,pre{font-family:Source Code Pro,monospace}code{padding:.25em .5em;border-radius:3px}code,pre{font-size:.8rem;background-color:#f5f5f5}pre{display:block;margin-top:0;margin-bottom:1rem;padding:1rem;line-height:1.4;white-space:pre;white-space:pre-wrap;word-break:break-all;word-wrap:break-word}pre code{padding:0;font-size:100%;color:inherit;background-color:transparent}pre.highlight{white-space:pre;overflow-x:auto}.highlight{margin-bottom:1rem;border-radius:4px}.highlight pre{margin-bottom:0}.gist .gist-file{font-family:Source Code Pro,monospace!important}.gist .markdown-body{padding:15px}.gist pre{padding:0;background-color:transparent}.gist .gist-file .gist-data{font-size:.8rem!important;line-height:1.4}.gist code{padding:0;color:inherit;background-color:transparent;border-radius:0}.container{margin-left:auto;margin-right:auto;width:615px}.content-container{margin-bottom:4rem}@media (max-width:768px){.container{width:90vw}}.header{padding-top:.5rem;padding-bottom:.5rem;margin-bottom:1rem;font-family:Quattrocento Sans,sans-serif}.header a:hover{color:#000}.header-title a{font-size:2rem;text-decoration:none;color:#505050}.header-subtitle{color:#999;padding-left:7px}.menu{width:100%;padding-top:.5rem}.menu,.menu-content{display:flex;justify-content:flex-start}.menu-content{flex-wrap:wrap;float:left;margin-bottom:5px}.menu-content a{color:#686868;font-size:1rem;padding-right:20px;padding-bottom:5px;white-space:nowrap;flex:1 0 auto;box-sizing:border-box}.social-icons{float:right;margin-left:auto;order:7;display:flex;align-items:center}.social-icons a{color:#686868;font-size:2rem}@media (max-width:630px){.menu-content a{flex:1 0 30%;max-width:30%;padding-right:0}.social-icons a{font-size:2.5rem}.menu-item.about{order:1}.menu-item.education{order:2}.menu-item.experience{order:3}.menu-item.research{order:4}.menu-item.projects{order:5}.menu-item.cv{order:6}}@media (max-width:350px){.menu-content a{flex:1 0 45%;max-width:45%;padding-right:0}.social-icons a{font-size:3rem}.menu-item.about{order:1}.menu-item.education{order:2}.menu-item.experience{order:3}.menu-item.research{order:4}.menu-item.projects{order:5}.menu-item.cv{order:6}}.footer{color:#999;text-align:center;margin:2rem}.footer a{color:#999;padding:10px;text-decoration:none}.footer a:hover{color:#333}.footer-description{display:block;margin-top:3px;margin-bottom:1rem;color:#999;font-family:Quattrocento Sans,sans-serif;font-size:.8rem;transform:translateZ(0);backface-visibility:hidden}.posts-container{margin-bottom:5rem;padding:0;list-style:none}.thumbnail-container{max-width:100%;overflow:hidden;border-radius:5px;margin-bottom:25px}.thumbnail-container img{margin-top:-11.5%;margin-bottom:-11.5%}.pagination{overflow:hidden;font-family:Quattrocento Sans,sans-serif;text-align:center}.pagination a{text-decoration:none}.pagination-button{color:#999;border:1px solid #e0e0e0;padding:15px 45px;display:inline-block;font-size:16px;font-weight:700}.pagination-active{color:#000}.pagination-active:hover{background-color:#e0e0e0}.post-date{display:block;margin-top:3px;margin-bottom:1rem;color:#999;font-family:Quattrocento Sans,sans-serif;font-size:.8rem}@media (max-width:30em){.posts h1{font-size:1.5rem}}.related{padding-bottom:2rem}.related-posts{padding-left:0;list-style:none}.related-posts a{text-decoration:none}.sharing-icons a{padding-right:10px}.fa-envelope{padding:5px;transition:.5s}.fa-envelope:hover{color:#f39c12}.fa-twitter{padding:5px;transition:.5s}.fa-twitter:hover{color:#00aced}.fa-instagram{padding:5px;transition:.5s}.fa-instagram:hover{color:#e1306c}.fa-chart-line{padding:5px;transition:.5s}.fa-chart-line:hover{color:#2ecc71}.fa-github{padding:5px;transition:.5s}.fa-github:hover{color:#343434}.fa-linkedin{padding:5px;transition:.5s}.fa-linkedin:hover{color:#0073a4}.fa-facebook{padding:5px;transition:.5s}.fa-facebook:hover{color:#3d5b99}.fa-pinterest{padding:5px;transition:.5s}.fa-pinterest:hover{color:#bd081c}.fa-medium{padding:5px;transition:.5s}.fa-medium:hover{color:#00ab6c}.fa-codepen{padding:5px;transition:.5s}.fa-codepen:hover{color:#000}.fa-rss-square{padding:5px;transition:.5s}.fa-rss-square:hover{color:#f60}body{background-color:#fff;cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 320 512'%3E%3Cpath stroke='%23FFF' stroke-width='5' d='M0 55.2V426c0 12.2 9.9 22 22 22 6.3 0 12.4-2.7 16.6-7.5l82.6-94.5 58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320h118.1c12.2 0 22.1-9.9 22.1-22.1 0-6.3-2.7-12.3-7.4-16.5L38.6 37.9c-4.3-3.8-9.7-5.9-15.4-5.9C10.4 32 0 42.4 0 55.2z'/%3E%3C/svg%3E") 0 0,auto}#compassIcon,a{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 448 512'%3E%3Cpath stroke='%23FFF' stroke-width='5' d='M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40v148.2c8.5-7.6 19.7-12.2 32-12.2 20.6 0 38.2 13 45 31.2 8.8-9.3 21.2-15.2 35-15.2 25.3 0 46 19.5 47.9 44.3 8.5-7.7 19.8-12.3 32.1-12.3 26.5 0 48 21.5 48 48v112c0 70.7-57.3 128-128 128h-85.3c-5 0-9.9-.3-14.7-1-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zm112 264c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16v-96zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16v-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16v-96z'/%3E%3C/svg%3E") 8 0,auto}div.scroll-container{background-color:transparent;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding:10px 0;height:35vh;display:flex;gap:20px;align-items:center;transition:color 2s;position:relative}div.scroll-container.project{height:20vh}div.scroll-container img,div.scroll-container video{padding:10px 0;height:calc(35vh - 20px);-o-object-fit:contain;object-fit:contain}div.scroll-container.project img,div.scroll-container.project video{height:calc(20vh - 20px)}.modal{display:none;position:fixed;z-index:100;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.8);align-items:center;justify-content:center;text-align:center}.modal-content{margin:auto;display:block;max-width:90%;max-height:90%}.close{position:absolute;top:20px;right:35px;color:#fff;font-size:40px;font-weight:700;transition:.3s}.close:focus,.close:hover{color:#bbb;text-decoration:none;cursor:pointer}.image-wrapper{display:inline-block;background-color:#fff;padding:5px;border-radius:5px}.image-wrapper img{display:block}#music-icon{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 512 512'%3E%3Cpath stroke='%23FFF' stroke-width='5' d='M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v336c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6V147l-256 76.8V432c0 44.2-43 80-96 80S0 476.2 0 432s43-80 96-80c11.2 0 22 1.6 32 4.6V128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z'/%3E%3C/svg%3E") 9 9,auto}.trafficReport{position:relative;min-height:420px}.trafficReport iframe{opacity:0;transition:opacity .45s ease}.trafficReport iframe.traffic-report-frame-ready{opacity:1}.traffic-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;text-align:center;font-size:.95rem;color:#333;background:linear-gradient(180deg,hsla(0,0%,100%,.9),hsla(0,0%,100%,.8));transition:opacity .4s ease,visibility .4s ease;z-index:2}body.dark-mode .traffic-loader{color:#fafafa;background:linear-gradient(180deg,hsla(0,0%,7%,.95),hsla(0,0%,7%,.85))}.traffic-loader--hidden{opacity:0;visibility:hidden}.traffic-loader__spinner{width:42px;height:42px;border-radius:50%;border:3px solid rgba(0,0,0,.15);border-top-color:currentColor;animation:traffic-spin 1s linear infinite}@keyframes traffic-spin{to{transform:rotate(1turn)}}.visitormap{position:relative;min-height:320px;border-radius:12px;overflow:hidden;background:rgba(0,0,0,.03)}body.dark-mode .visitormap{background:hsla(0,0%,100%,.08)}.visitormap-frame{width:100%;height:100%;border:0;display:block}.visitor-map-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;text-align:center;font-size:.9rem;color:#333;background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.85));transition:opacity .4s ease,visibility .4s ease;z-index:2}body.dark-mode .visitor-map-loader{color:#fafafa;background:linear-gradient(180deg,hsla(0,0%,7%,.95),hsla(0,0%,7%,.85))}.visitor-map-loader--hidden{opacity:0;visibility:hidden}.visitor-map-loader__spinner{width:36px;height:36px;border-radius:50%;border:3px solid rgba(0,0,0,.15);border-top-color:currentColor;animation:traffic-spin 1s linear infinite}.highlight .hll{background-color:#ffc}.highlight .c{color:#999}.highlight .err{color:#a00;background-color:#faa}.highlight .k{color:#069}.highlight .o{color:#555}.highlight .cm{color:#09f;font-style:italic}.highlight .cp{color:#099}.highlight .c1,.highlight .cs{color:#999}.highlight .gd{background-color:#fcc;border:1px solid #c00}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:#030}.highlight .gi{background-color:#cfc;border:1px solid #0c0}.highlight .go{color:#aaa}.highlight .gp{color:#009}.highlight .gu{color:#030}.highlight .gt{color:#9c6}.highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr{color:#069}.highlight .kt{color:#078}.highlight .m{color:#f60}.highlight .s{color:#d44950}.highlight .na{color:#4f9fcf}.highlight .nb{color:#366}.highlight .nc{color:#0a8}.highlight .no{color:#360}.highlight .nd{color:#99f}.highlight .ni{color:#999}.highlight .ne{color:#c00}.highlight .nf{color:#c0f}.highlight .nl{color:#99f}.highlight .nn{color:#0cf}.highlight .nt{color:#2f6f9f}.highlight .nv{color:#033}.highlight .ow{color:#000}.highlight .w{color:#bbb}.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#f60}.highlight .sb,.highlight .sc{color:#c30}.highlight .sd{color:#c30;font-style:italic}.highlight .s2,.highlight .se,.highlight .sh{color:#c30}.highlight .si{color:#a00}.highlight .sx{color:#c30}.highlight .sr{color:#3aa}.highlight .s1{color:#c30}.highlight .ss{color:#fc3}.highlight .bp{color:#366}.highlight .vc,.highlight .vg,.highlight .vi{color:#033}.highlight .il{color:#f60}.css .nt+.nt,.css .o,.css .o+.nt{color:#999}body.dark-mode{background-color:#000;color:#cfcfcf;cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 320 512'%3E%3Cpath fill='%23FFF' stroke='%23000' stroke-width='5' d='M0 55.2V426c0 12.2 9.9 22 22 22 6.3 0 12.4-2.7 16.6-7.5l82.6-94.5 58.1 116.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9L179.8 320h118.1c12.2 0 22.1-9.9 22.1-22.1 0-6.3-2.7-12.3-7.4-16.5L38.6 37.9c-4.3-3.8-9.7-5.9-15.4-5.9C10.4 32 0 42.4 0 55.2z'/%3E%3C/svg%3E") 0 0,auto}body.dark-mode a,body.dark-mode h1,body.dark-mode h2,body.dark-mode h3,body.dark-mode h5,body.dark-mode h6{color:#ccc}body.dark-mode h4{color:#7f7f7f}body.dark-mode #compassIcon,body.dark-mode a{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 448 512'%3E%3Cpath fill='%23FFF' stroke='%23000' stroke-width='5' d='M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40v148.2c8.5-7.6 19.7-12.2 32-12.2 20.6 0 38.2 13 45 31.2 8.8-9.3 21.2-15.2 35-15.2 25.3 0 46 19.5 47.9 44.3 8.5-7.7 19.8-12.3 32.1-12.3 26.5 0 48 21.5 48 48v112c0 70.7-57.3 128-128 128h-85.3c-5 0-9.9-.3-14.7-1-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7V40zm112 264c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16v-96zm48-16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16v-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16v96c0 8.8 7.2 16 16 16s16-7.2 16-16v-96z'/%3E%3C/svg%3E") 8 0,auto}body.dark-mode .container .header a:hover,body.dark-mode a:hover{color:#fff}body.dark-mode blockquote{border-left-color:#444;color:#ccc}body.dark-mode hr{border-top-color:#444}body.dark-mode code,body.dark-mode pre{background-color:#444;color:#fafafa}body.dark-mode .footer a,body.dark-mode .footer-description,body.dark-mode .header-subtitle,body.dark-mode .header-title a,body.dark-mode .menu-content a,body.dark-mode .post-date,body.dark-mode .social-icons a{color:#ccc}body.dark-mode .pagination-button{color:#ccc;border-color:#333}body.dark-mode .pagination-active:hover{background-color:#555}body.dark-mode .header-title a{color:#cfcfcf}body.dark-mode .header-subtitle{color:#666}body.dark-mode .menu-content a{color:#979797}body.dark-mode #music-icon{cursor:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 512 512'%3E%3Cpath fill='%23FFF' stroke='%23000' stroke-width='5' d='M499.1 6.3c8.1 6 12.9 15.6 12.9 25.7v336c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6V147l-256 76.8V432c0 44.2-43 80-96 80S0 476.2 0 432s43-80 96-80c11.2 0 22 1.6 32 4.6V128c0-14.1 9.3-26.6 22.8-30.7l320-96c9.7-2.9 20.2-1.1 28.3 5z'/%3E%3C/svg%3E") 9 9,auto}body.dark-mode .welcome-text h1{color:#ccc}body.dark-mode .welcome-text h2{color:#000}body.dark-mode .welcome-text h2 .typed{color:#fafafa}body.dark-mode #welcomeQuote{color:#565656}body.dark-mode .scroll-container{background-color:transparent}body.dark-mode .timeline-event-icon{outline-color:#000}a,body.dark-mode .footer{color:#666}body.dark-mode .fa-github:hover{color:#fff}body.dark-mode .tipcolor-1{color:#363636}body.dark-mode .tipcolor-2{color:#000}body.dark-mode .timeline:before{background-color:#fff}body.dark-mode .timeline-event:hover .timeline-event-icon{background-color:#f2f2f2}body.dark-mode .timeline-event-icon{background-color:#fff;outline:10px solid #000}body.dark-mode .timeline-event-thumbnail{color:#000;background-color:#fff}body.dark-mode #timeline section.year section ul:first-of-type:after{border:2px solid #000}.fade-slide-enter-active[data-v-7452bd20],.fade-slide-leave-active[data-v-7452bd20]{transition:opacity .5s,transform .5s}.fade-slide-enter-from[data-v-7452bd20],.fade-slide-leave-to[data-v-7452bd20]{opacity:0}.fade-slide-enter-from[data-v-7452bd20]{transform:translateY(20px)}.fade-slide-leave-active[data-v-7452bd20]{transform:translateY(-20px);opacity:0}.scroll-reveal-item{opacity:0;transform:translate3d(0,32px,0) scale(.99);transition:opacity .75s ease,transform .9s cubic-bezier(.2,.65,.25,1);transition-delay:var(--scroll-delay,0ms);will-change:opacity,transform}.scroll-reveal-item.scroll-reveal-visible{opacity:1;transform:translateZ(0) scale(1)}.scroll-reveal-item[data-scroll-pop=true]{transform:translate3d(0,42px,0) scale(.94)}.scroll-reveal-item[data-scroll-pop=true].scroll-reveal-visible{transform:translateZ(0) scale(1)}.scroll-container.scroll-reveal-item{border-radius:14px;box-shadow:none;transform-origin:center;transform:translate3d(0,36px,0) scale(.94);transition:opacity .75s ease,transform .85s cubic-bezier(.2,.65,.25,1)}.scroll-container.scroll-reveal-item.scroll-reveal-visible{transform:translateZ(0) scale(1);box-shadow:none}.fallback-image,video{width:100%}.photo-frame{position:relative;display:inline-block;max-width:100%;line-height:0}.photo-frame img{display:block;border-radius:5px}.photo-watermark{position:absolute;right:clamp(12px,3.5%,22px);bottom:clamp(12px,3.5%,22px);display:flex;flex-direction:column;align-items:flex-end;text-align:right;line-height:1.2;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.photo-watermark .wm-zh{font-family:"Noto Serif TC","Source Han Serif TC",Songti TC,STSong,serif;font-size:clamp(8.4px,2vw,10.8px);font-weight:500;letter-spacing:.14em;margin-right:-.14em;color:hsla(0,0%,100%,.96);text-shadow:0 1px 5px rgba(0,0,0,.55),0 0 1px rgba(0,0,0,.45)}.photo-watermark .wm-en{font-family:"PT Serif",Georgia,serif;font-style:italic;font-size:clamp(6px,1.26vw,7.2px);margin-top:3px;letter-spacing:.2em;margin-right:-.2em;color:hsla(0,0%,100%,.88);text-shadow:0 1px 4px rgba(0,0,0,.5)}#timeline{position:relative;display:table;height:100%;margin-left:auto;margin-right:auto;margin-top:3rem}#timeline div:after{content:"";width:2px;position:absolute;top:.5rem;bottom:0;left:60px;z-index:1;background:#c5c5c5}#timeline h3{position:sticky;top:5rem;color:#888;margin:0;font-size:1em;font-weight:400}@media (min-width:62em){#timeline h3{font-size:1.1em}}#timeline section.year{position:relative}#timeline section.year section:first-child{margin-top:-1.3em;padding-bottom:0}#timeline section.year section{position:relative;padding-bottom:2.5em;margin-bottom:6em}#timeline section.year section h4{position:absolute;bottom:0;font-size:.9em;font-weight:400;line-height:1em;margin:0;padding:0 0 0 89px;color:#969696}#timeline section.year section ul{list-style-type:none;padding:0 0 0 85px;margin:-1.35rem 0 1em;max-width:100rem;font-size:.9em}#timeline section.year section ul:last-child{margin-bottom:0}#timeline section.year section ul:first-of-type:after{content:"";width:10px;height:10px;background:#c5c5c5;border:2px solid #fff;border-radius:50%;position:absolute;left:54px;top:3px;z-index:2}#timeline section.year section ul li{margin-left:.5rem}#timeline section.year section ul li:not(:first-child){margin-top:.5rem}#timeline section.year section ul li.title{font-weight:700;font-size:1.5em;margin-top:.8rem}#timeline section.year section ul li.role{font-weight:700;font-size:1.2em;color:#838383;margin-top:.6rem;margin-bottom:.8rem}#timeline section.year section ul li.description:before{content:"·";margin-left:-.5rem;padding-right:.3rem}.timeline{margin:3em auto;position:relative;max-width:90%}.timeline:before{background-color:#000;content:"";margin-left:-1px;position:absolute;top:0;left:0;width:2px;height:100%}.timeline-event{position:relative}.timeline-event:hover .timeline-event-icon{transform:rotate(-45deg);background-color:#494949}.timeline-event-copy{padding:2em;padding-bottom:5em;position:relative;top:-1.875em;left:2em;width:calc(100% - 4em)}.timeline-event-copy h3{font-size:1.75em;line-height:1.2em}.timeline-event-copy h4{font-size:1.2em;margin-bottom:1.2em}.timeline-event-copy strong{font-weight:700}.timeline-event-copy p:not(.timeline-event-thumbnail){padding-bottom:0}.timeline-event-icon{transition:transform .2s ease-in,outline-color 2s ease-in;transform:rotate(45deg);background-color:#000;outline:10px solid #fff;display:block;margin:.5em .5em .5em -.5em;position:absolute;top:0;left:0;width:1em;height:1em}.timeline-event-thumbnail{transition:color 2s ease-in;color:#fff;font-size:.75em;background-color:#000;display:inline-block;margin-bottom:1.2em;padding:.25em 1em .2em 1em}ul.timeline{list-style-type:none;padding-left:0}.cv-root[data-v-6d66787d]{--ink:#141414;--muted:#6b6b6b;--faint:#9a9a9a;--rule:#e6e6e6;--bg:#fff;min-height:100vh;background:var(--bg);color:var(--ink);padding:0 20px 64px}.cv-toolbar[data-v-6d66787d]{max-width:740px;margin:0 auto;padding:22px 0 12px;display:flex;align-items:center;justify-content:space-between}.cv-back[data-v-6d66787d]{font-family:Quattrocento Sans,sans-serif;font-size:.78rem;letter-spacing:.04em;color:var(--muted);text-decoration:none}.cv-back[data-v-6d66787d]:hover{color:var(--ink)}.cv-print[data-v-6d66787d]{font-family:Quattrocento Sans,sans-serif;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:transparent;border:1px solid var(--ink);border-radius:2px;padding:7px 14px;cursor:pointer;transition:background .15s ease,color .15s ease}.cv-print[data-v-6d66787d]:hover{background:var(--ink);color:#fff}.cv-sheet[data-v-6d66787d]{max-width:740px;margin:0 auto;font-family:"PT Serif",Georgia,serif;font-size:15px;line-height:1.6}.cv-head[data-v-6d66787d]{text-align:center;padding-bottom:26px;margin-bottom:8px;border-bottom:1px solid var(--rule)}.cv-name[data-v-6d66787d]{font-family:"PT Serif",Georgia,serif;font-weight:700;font-size:2.5rem;line-height:1.1;letter-spacing:.01em;color:var(--ink);margin:0}.cv-tagline[data-v-6d66787d]{font-family:Quattrocento Sans,sans-serif;font-size:.92rem;color:var(--muted);margin:10px 0 14px}.cv-tagline .nowrap[data-v-6d66787d]{white-space:nowrap}.cv-contact[data-v-6d66787d]{font-family:Quattrocento Sans,sans-serif;font-size:.8rem;letter-spacing:.02em;color:var(--muted);margin:0;display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline}.cv-contact a[data-v-6d66787d]{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease}.cv-contact a[data-v-6d66787d]:hover{border-bottom-color:var(--ink)}.cv-contact .dot[data-v-6d66787d]{margin:0 9px;color:var(--faint)}.cv-section[data-v-6d66787d]{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:26px 0;border-bottom:1px solid var(--rule)}.cv-section[data-v-6d66787d]:last-of-type{border-bottom:none}.cv-label[data-v-6d66787d]{font-family:Quattrocento Sans,sans-serif;font-weight:400;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--faint);margin:4px 0 0}.cv-body[data-v-6d66787d]{margin:0}.cv-body>p[data-v-6d66787d]:first-child{margin-top:0}.cv-body p[data-v-6d66787d]{margin:0}.entry[data-v-6d66787d]{margin-bottom:20px}.entry[data-v-6d66787d]:last-child{margin-bottom:0}.entry-head[data-v-6d66787d]{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.entry-title[data-v-6d66787d]{font-weight:700;color:var(--ink);margin:0 0 1px}.entry-meta[data-v-6d66787d]{font-family:Quattrocento Sans,sans-serif;font-size:.76rem;letter-spacing:.02em;color:var(--faint);white-space:nowrap;flex-shrink:0}.incoming[data-v-6d66787d]{font-weight:400;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--rule);border-radius:2px;padding:1px 6px;margin-left:6px;vertical-align:middle}.entry-sub[data-v-6d66787d],.incoming[data-v-6d66787d]{font-family:Quattrocento Sans,sans-serif;color:var(--muted)}.entry-sub[data-v-6d66787d]{font-size:.85rem;margin:0 0 5px}.entry-note[data-v-6d66787d]{font-size:.92rem;color:#3c3c3c;margin:0}.pub-list[data-v-6d66787d]{list-style:none;margin:0;padding-left:0}.pub-list li[data-v-6d66787d]{margin-bottom:18px;font-size:.92rem;color:#3c3c3c;line-height:1.5}.pub-list li[data-v-6d66787d]:last-child{margin-bottom:0}.pub-title[data-v-6d66787d]{display:block;color:var(--ink)}.pub-authors[data-v-6d66787d]{display:block;color:#3c3c3c}.pub-venue[data-v-6d66787d]{display:block;font-style:italic;color:var(--muted)}.me[data-v-6d66787d]{font-weight:700;color:var(--ink)}.cv-foot[data-v-6d66787d]{display:flex;justify-content:space-between;margin-top:34px;font-family:Quattrocento Sans,sans-serif;font-size:.72rem;letter-spacing:.04em;color:var(--faint)}@media (max-width:620px){.cv-name[data-v-6d66787d]{font-size:2rem}.cv-section[data-v-6d66787d]{grid-template-columns:1fr;gap:10px}.cv-label[data-v-6d66787d]{margin-bottom:4px}.entry-head[data-v-6d66787d]{flex-direction:column;align-items:flex-start;gap:1px}.entry-meta[data-v-6d66787d]{order:-1}}@media print{.no-print[data-v-6d66787d]{display:none!important}.cv-root[data-v-6d66787d]{padding:0}.cv-sheet[data-v-6d66787d]{max-width:100%;font-size:11pt}.cv-section[data-v-6d66787d],.entry[data-v-6d66787d],.pub-list li[data-v-6d66787d]{-moz-column-break-inside:avoid;break-inside:avoid}a[data-v-6d66787d]{color:#000!important}}body[data-v-8dad91ec],html[data-v-8dad91ec]{-webkit-user-select:none;-moz-user-select:none;user-select:none}#videoElement.homevideo1[data-v-8dad91ec]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 288 512" fill="%23FFFFFF"><%21--%21Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M216 464h-40V346.8c68.5-15.9 118.1-79.9 111.4-154.2l-16-178.1C270.7 6.3 263.9 0 255.7 0H32.3c-8.2 0-15 6.3-15.7 14.6L.6 192.7C-6.1 266.9 43.5 330.9 112 346.8V464H72c-22.1 0-40 17.9-40 40 0 4.4 3.6 8 8 8h208c4.4 0 8-3.6 8-8 0-22.1-17.9-40-40-40zM61.8 48h164.5l7.2 80H54.6l7.2-80z"/></svg>') 32 32,auto}#videoElement.homevideo2[data-v-8dad91ec]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 512 512" fill="%23FFFFFF"><%21--%21Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"/></svg>') 32 32,auto}#videoElement.homevideo3[data-v-8dad91ec]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 512 512" fill="%23FFFFFF"><%21--%21Font Awesome Free 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M290.6 192c-20.2 0-106.8 2-162.6 86V192c0-52.9-43.1-96-96-96-17.7 0-32 14.3-32 32s14.3 32 32 32c17.6 0 32 14.4 32 32v256c0 35.3 28.7 64 64 64h176c8.8 0 16-7.2 16-16v-16c0-17.7-14.3-32-32-32h-32l128-96v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V289.9c-10.3 2.7-20.9 4.5-32 4.5-61.8 0-113.5-44.1-125.4-102.4zM448 96h-64l-64-64v134.4c0 53 43 96 96 96s96-43 96-96V32l-64 64zm-72 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm80 0c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"/></svg>') 32 32,auto}#imageElement[data-v-8dad91ec],#videoElement.homevideo4[data-v-8dad91ec]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 512 512" fill="%23FFFFFF"><%21--%21Font Awesome Free v7.0.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M552 264C582.9 264 608 289.1 608 320C608 350.9 582.9 376 552 376L424.7 376L265.5 549.6C259.4 556.2 250.9 560 241.9 560L198.2 560C187.3 560 179.6 549.3 183 538.9L237.3 376L137.6 376L84.8 442C81.8 445.8 77.2 448 72.3 448L52.5 448C42.1 448 34.5 438.2 37 428.1L64 320L37 211.9C34.4 201.8 42.1 192 52.5 192L72.3 192C77.2 192 81.8 194.2 84.8 198L137.6 264L237.3 264L183 101.1C179.6 90.7 187.3 80 198.2 80L241.9 80C250.9 80 259.4 83.8 265.5 90.4L424.7 264L552 264z"/></svg>') 32 32,auto}#videoElement.homevideo5[data-v-8dad91ec]{cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 512 512" fill="%23FFFFFF"><%21--%21Font Awesome Free v7.0.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M456.5 64C407.9 64 368.5 103.4 368.5 152L368.5 188L13.3 454.4C-.8 465-3.7 485 6.9 499.2C17.5 513.4 37.5 516.2 51.7 505.6L128.5 448L259.8 448L306.4 561.1L307.4 563.3C313.1 574 326.2 578.8 337.7 574.1C349.2 569.4 355 556.8 351.6 545.1L350.8 542.8L311.7 447.9L352.6 447.9C353.7 447.9 354.8 447.9 355.8 447.9L402.4 561.1L403.4 563.3C409.1 574 422.2 578.8 433.7 574.1C445.2 569.4 451 556.8 447.6 545.1L446.8 542.8L404.8 440.8C485.3 418.1 544.5 344 544.5 256L544.5 184L625 163.9C633.6 161.8 638.8 153.1 636.6 144.5C629.5 116 603.9 96 574.5 96L524.4 96C508.2 76.5 483.8 64 456.5 64zM456.5 128C469.8 128 480.5 138.7 480.5 152C480.5 165.3 469.8 176 456.5 176C443.2 176 432.5 165.3 432.5 152C432.5 138.7 443.2 128 456.5 128z"/></svg>') 32 32,auto}#imageElement[data-v-8dad91ec],#videoElement[data-v-8dad91ec]{z-index:2000}.fallback-image[data-v-8dad91ec],video[data-v-8dad91ec]{max-width:45%;height:auto}video[data-v-8dad91ec]{filter:grayscale(85%)}#imageElement[data-v-8dad91ec],video[data-v-8dad91ec]{transition:opacity 3s ease-in-out,filter 1s ease-in-out}.transition-overlay[data-v-8dad91ec]{background:#afb4b9;z-index:3000}.description-overlay[data-v-8dad91ec],.transition-overlay[data-v-8dad91ec]{position:absolute;top:0;left:0;width:45%;height:100%;opacity:0;pointer-events:none}.description-overlay[data-v-8dad91ec]{background:#000;z-index:4000;transition:opacity .3s ease-in-out;display:flex;justify-content:center;align-items:center}.description-content[data-v-8dad91ec]{text-align:center;color:#fff;margin:15%;font-size:25px;line-height:45px}.description-content p[data-v-8dad91ec]{font-size:15px;line-height:20px}.image-left.container[data-v-8dad91ec]{position:relative;contain:layout}#welcomeQuote[data-v-8dad91ec]{transform:translateZ(0);backface-visibility:hidden}.image-left[data-v-8dad91ec],.image-right[data-v-8dad91ec]{margin:1em 0}@media (min-width:20em){.image-left[data-v-8dad91ec],.image-right[data-v-8dad91ec]{display:flex;align-items:flex-start}.image-left .fallback-image[data-v-8dad91ec],.image-left video[data-v-8dad91ec]{margin-right:1.5em;float:left}.image-right .fallback-image[data-v-8dad91ec],.image-right video[data-v-8dad91ec]{order:1;margin-left:1.5em;float:right}.image-left[data-v-8dad91ec]:after,.image-right[data-v-8dad91ec]:after{content:"";display:block;clear:both}}@media (min-width:30em){.image-left .fallback-image[data-v-8dad91ec],.image-left video[data-v-8dad91ec],.image-right .fallback-image[data-v-8dad91ec],.image-right video[data-v-8dad91ec]{flex-shrink:0}}@media (max-width:768px){.welcome-text h1[data-v-8dad91ec]{font-size:1.8em}.welcome-text h2[data-v-8dad91ec]{font-size:1.05em}.description-content[data-v-8dad91ec]{margin:15%;font-size:4vw;line-height:6vw}.description-content p[data-v-8dad91ec]{font-size:2.3vw}}@media (min-width:615px){.welcome-text h1[data-v-8dad91ec]{font-size:3.3em}.welcome-text h2[data-v-8dad91ec]{font-size:1.63em}}.welcome-text[data-v-8dad91ec]{flex:2;display:flex;flex-direction:column;justify-content:space-between;height:100%}.welcome-text h1[data-v-8dad91ec]{margin:0;margin-block-start:0;margin-block-end:0;width:100%;line-height:1.2;position:relative;top:-.1em;text-align:center;color:#616161}.welcome-text h2[data-v-8dad91ec]{margin:0;margin-block-start:0;margin-block-end:0;line-height:1.4;position:relative;top:.2em;text-align:left;text-align-last:left;-moz-text-align-last:left;color:#fff}#welcomeQuote[data-v-8dad91ec]{text-align:center;font-size:1em;color:#a9a9a9}.typed[data-v-8dad91ec]{opacity:0;animation:fadeIn-8dad91ec 2s forwards;transition:color 2s}@keyframes fadeIn-8dad91ec{to{opacity:1}}@keyframes rotate-shake-8dad91ec{0%{transform:rotate(0deg)}25%{transform:rotate(var(--shake-angle))}50%{transform:rotate(calc(var(--shake-angle)*-1))}75%{transform:rotate(var(--shake-angle))}to{transform:rotate(0deg)}}.shake[data-v-8dad91ec]{animation:rotate-shake-8dad91ec var(--shake-duration) infinite}@keyframes flip-8dad91ec{0%{transform:perspective(800px) rotateY(0deg)}to{transform:perspective(800px) rotateY(90deg)}}@keyframes flip2-8dad91ec{0%{transform:perspective(800px) rotateY(270deg)}to{transform:perspective(800px) rotateY(1turn)}}.flip[data-v-8dad91ec]{animation:flip-8dad91ec 1s ease-in-out forwards}.flip2[data-v-8dad91ec]{animation:flip2-8dad91ec 1s ease-in-out forwards}#compassIcon[data-v-8dad91ec]{--shake-angle:10deg;--shake-duration:0.5s}.tipcolor-1[data-v-8dad91ec]{color:#c9c9c9;transition:color .8s;font-size:13px}.tipcolor-2[data-v-8dad91ec]{color:#fff;transition:color .8s;font-size:13px}#overlay[data-v-8dad91ec]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:hsla(0,0%,100%,0);z-index:1000;pointer-events:all}