body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@font-face{font-family:JetBrainsMono;font-style:normal;font-weight:400;src:url(/static/media/JetBrainsMono-Regular.93b40005892466035ab0.ttf) format("truetype")}@font-face{font-family:FZ-Song;font-style:normal;font-weight:400;src:url(/static/media/FZ-Song.84aa09e3c58b7a072894.TTF) format("truetype")}:root{--text-color:#252525;--shadow-color:#2525254d}*{box-sizing:border-box;margin:0;padding:0}body{font-family:JetBrainsMono,Arial,sans-serif;line-height:1.6}.App{--shadow-color:#2525254d;--shadow-offset-x:0px;--shadow-offset-y:0px;--shadow-blur:30px;--shadow-spread:0px;background-attachment:fixed;background-position:50%;background-repeat:no-repeat;background-size:cover;display:flex;flex-direction:column;min-height:100vh;transition:background .3s,color .3s}.App.light{--background-color:#f0f0f0;--text-color:#252525;--border-color:#252525;--card-background-color:#252525;--card-text-color:#f0f0f0;--line-color:#252525;--shadow-color:#2525254d;background-color:#f0f0f0;color:#252525}.App.dark{--background-color:#252525;--text-color:#f0f0f0;--border-color:#f0f0f0;--card-background-color:#f0f0f0;--card-text-color:#252525;--line-color:#f0f0f0;--shadow-color:#f0f0f04d;background-color:#252525;color:#f0f0f0}.left-side,.right-side{bottom:0;display:flex;flex-direction:column;justify-content:space-between;padding:20px;position:fixed;top:0;width:300px}.left-side{font-family:JetBrainsMono,Arial,sans-serif;left:0}.right-side{right:0}.logo,.logo-container{align-items:flex-start;display:flex;flex-direction:column}.logo{cursor:pointer;font-weight:700;width:150px}.logo div{align-items:center;display:flex;flex-direction:row;margin-bottom:5px;position:relative;width:100%}.logo .simple-icon{height:3em;margin-right:10px;object-fit:contain;position:relative;width:3em}.logo .text-container{align-items:flex-start;display:flex;flex-direction:column}.logo span{font-size:1.3em;line-height:1.2;margin-top:0}.social-icons{display:flex;justify-content:flex-start;margin-top:0;width:100%}.social-icons a{color:inherit;font-size:1.2em;margin:5px;transition:color .3s}.social-icons a:hover{color:var(--card-background-color)}.copyright{font-size:.8em;margin-top:0}.controls{align-items:flex-end;display:flex;flex-direction:column;position:relative}.controls button{background-color:initial;border:1px solid;border-radius:4px;cursor:pointer;font-family:FZ-Song,serif;margin-top:10px;padding:5px 10px}.App.light .controls button{color:#252525}.App.dark .controls button{color:#f0f0f0}main{flex-grow:1;margin:0 300px;padding:20px}nav{bottom:20px;padding:0 20px;position:fixed;right:20px;width:280px}nav ul{list-style-type:none;text-align:right}nav ul li{margin-bottom:10px}nav ul li a{color:inherit;text-decoration:none}nav ul li.active a{text-decoration:underline}@media (max-width:1200px){.left-side,.right-side{display:none}main{margin:10px;overflow-x:hidden;padding:10px;width:calc(100% - 20px)}nav{margin-top:20px;order:-1;padding:0;position:static;width:100%}nav:after{background-color:#252525;background-color:var(--text-color);content:"";display:block;height:2px;margin-top:10px}nav ul{display:flex;flex-wrap:wrap;justify-content:space-around;padding:0 10px}nav ul li{margin-bottom:0;white-space:nowrap}}@media (max-width:600px){main{margin:5px;padding:5px;width:calc(100% - 10px)}nav ul{font-size:.9em}.logo span{font-size:1.1em}}.chinese{font-family:FZ-Song,serif}.intro-content{align-items:center;color:var(--text-color);display:flex;flex-direction:column;height:80vh;justify-content:center;position:relative;text-align:center}.intro-greeting{font-size:2em;margin-bottom:10px}.intro-name{display:block;font-size:2.5em;font-weight:700;margin-top:10px}.intro-title{cursor:pointer;font-size:2em;margin-bottom:30px}.intro-title:hover{text-decoration:underline}.expandable-line{background-color:var(--line-color);height:2px;margin:10px 0;transition:width 1s ease-in-out;width:30px}.expandable-line.expand{width:40%}.intro-poem{color:var(--text-color);font-family:FZ-Song,serif;font-size:1.5em;position:absolute;text-orientation:upright;transform-origin:center;writing-mode:vertical-rl}.intro-poem.left{left:20px;top:50%;transform:translateY(-50%)}.intro-poem.right{right:20px;top:50%;transform:translateY(-50%)}@media (max-width:1200px){.intro-greeting{font-size:1.8em}.intro-title{font-size:1.5em}.intro-poem{font-size:1.4em}}@media (max-width:600px){.intro-poem{display:none}}section p{font-size:1.2em;line-height:1.8}@media (max-width:768px){section p{word-wrap:break-word;font-size:1em;line-height:1.6;padding:0 10px}}@media (min-width:769px){section p{font-size:1em}}section#about{margin-bottom:60px}.experience-list{align-items:center;display:flex;flex-direction:column;margin-top:20px}.experience-item{color:var(--text-color);display:flex;font-family:inherit;font-size:1.2em;justify-content:center;max-width:800px;padding:15px 0;text-align:center;transition:background-color .3s,color .3s;width:100%}.experience-item:not(:last-child){border-bottom:1px solid var(--line-color)}.experience-item.hovered{background-color:var(--card-background-color);color:var(--card-text-color)}.experience-item span{align-items:center;display:flex;flex:1 1;justify-content:center}.experience-details{color:inherit;font-family:inherit;font-size:1.2em;text-align:center}@media (max-width:768px){.experience-item{flex-direction:column;font-size:.9em;gap:5px;padding:12px 5px}.experience-item span{text-align:center;width:100%}.experience-details{font-size:.9em;line-height:1.4;padding:0 10px}}@media (max-width:480px){section p{font-size:.9em;padding:0 5px}h2,h3{font-size:1.2em}.experience-details,.experience-item{font-size:.85em}}h3{font-size:1.5em;margin-bottom:20px;margin-top:50px}h2,h3{text-align:center}.projects-list{display:flex;flex-direction:column;gap:0}.project-card{padding:5px;position:relative}.project-title{color:var(--text-color);font-size:24px;margin-bottom:10px;text-align:left}.project-image-link{display:block;margin-top:10px}.project-image-container{border:1px solid var(--text-color);display:block;line-height:0;overflow:hidden;position:relative}.project-image{filter:grayscale(100%) contrast(1.2) brightness(.9);height:auto;transition:transform .3s,filter .3s;width:100%}.project-image.hovered{filter:none;transform:scale(1.05)}.project-image-container:after{background-image:url(/static/media/noise.38638064ebefcb667cb7.png);content:"";height:100%;left:0;opacity:.03;pointer-events:none;position:absolute;top:0;width:100%}.visit-card{background-color:var(--text-color);border-radius:4px;color:var(--background-color);padding:5px 10px;pointer-events:none;position:absolute;transform:translate(-50%,-100%)}.tech-and-link{align-items:center;display:flex;justify-content:space-between;margin-top:10px}.tech-container{display:flex;flex-wrap:wrap}.tech-box{border:1px solid var(--text-color);color:var(--text-color);margin-bottom:5px;margin-right:10px;margin-top:5px;padding:2px 8px;text-align:left}.project-link-icon a{color:var(--text-color);text-decoration:none}.project-divider{border:none;border-top:1px solid var(--text-color);margin:10px 0}.project-description{color:var(--text-color);text-align:left}.project-image-container:hover:after{opacity:0}@media (max-width:768px){.project-title{font-size:20px}.project-description{word-wrap:break-word;font-size:.9em}.tech-container{margin-bottom:10px}.tech-box{font-size:.8em;margin:3px;padding:2px 6px}.project-card{padding:10px 5px}.project-image-container{margin:10px 0}}@media (max-width:480px){.project-title{font-size:18px}.tech-and-link{align-items:flex-start;flex-direction:column}.project-link-icon{margin-top:10px}}#contact{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:20px}.contact-title{word-wrap:break-word;font-family:monospace;font-size:2.5rem;margin-bottom:2rem}.contact-content,.contact-title{text-align:center}.contact-email{font-family:monospace;font-size:2rem;font-weight:700;letter-spacing:2px;margin-bottom:2rem}.contact-links{align-items:center;display:flex;flex-direction:column;gap:1rem}.contact-link-wrapper{display:flex;justify-content:center;width:100%}.contact-link{align-items:center;color:inherit;display:flex;font-family:monospace;font-size:1.2rem;gap:.5rem;text-decoration:underline;transition:opacity .3s ease}.contact-link:hover{opacity:.7}.contact-link svg{font-size:1.5rem}@media (max-width:768px){#contact{padding:10px}.contact-title{font-size:2rem;margin-bottom:1.5rem}.contact-email{word-wrap:break-word;font-size:1.5rem;margin-bottom:1.5rem;padding:0 10px}.contact-link{font-size:1rem}.contact-links{gap:.8rem}}@media (max-width:480px){.contact-title{font-size:1.8rem}.contact-email{font-size:1.2rem;padding:0 5px}.contact-link{font-size:.9rem}.contact-links{gap:.6rem}}.status{font-family:JetBrainsMono,Arial,sans-serif}.status-job{align-items:center;display:flex}.status-job-dot{animation:pulse 1s infinite alternate;background-color:#0f0;border-radius:50%;height:10px;margin-left:3px;margin-right:14px;width:10px}@keyframes pulse{0%{opacity:1;transform:scale(1)}to{opacity:.7;transform:scale(1.5)}}.status-location,.status-time{align-items:center;display:flex;margin-top:5px}.status-location svg,.status-time svg{margin-right:10px}.cv-button{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:8px;margin-top:5px;padding:0;text-decoration:none;transition:opacity .3s}.cv-button:hover{opacity:.7}.cv-button:active{color:inherit}.download-cv{position:relative}.resume-options{animation:fadeIn .2s ease-in-out;background-color:#141414f2;border:1px solid #ffffff1a;border-radius:4px;bottom:100%;box-shadow:0 -2px 10px #0000004d;left:0;margin-bottom:5px;min-width:150px;overflow:hidden;position:absolute;z-index:100}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.resume-option{color:#f0f0f0;display:block;font-family:inherit;font-size:.9rem;padding:10px 15px;text-decoration:none;transition:background-color .2s,color .2s}.resume-option:hover{background-color:#ffffff1a}.cn .status{font-family:FZ-Song,serif}.loading-container{align-items:center;background-color:#252525;color:#f0f0f0;cursor:pointer;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999}.loading-content{align-items:center;display:flex;flex-direction:column;gap:20px}.loading-text{display:flex;font-family:JetBrainsMono,monospace;font-size:2rem;gap:.2rem}.loading-text .char{animation:textPop 1.5s ease-in-out infinite;display:inline-block}.loading-text .char:nth-child(odd){animation-delay:.15s}@keyframes textPop{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.8;transform:translateY(-10%)}}.loading-spinner{height:80px;perspective:600px;width:120px}.book{position:relative;transform-style:preserve-3d}.book,.page{height:100%;width:100%}.page{animation:flipPage 1.5s ease infinite;-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:#f0f0f0;border-radius:4px;box-shadow:0 4px 8px #0000004d;position:absolute;transform-origin:center bottom}@keyframes flipPage{0%{transform:rotateX(0deg)}50%{transform:rotateX(-120deg)}to{transform:rotateX(-180deg)}}.loading-percentage{font-size:1.2rem}.loading-percentage,.welcome-hint{font-family:JetBrainsMono,monospace}.welcome-hint{animation:fadeInOut 2s infinite;color:#f0f0f0;font-size:.9rem;margin-top:10px;opacity:.8}@keyframes fadeInOut{0%,to{opacity:.8}50%{opacity:.4}}
/*# sourceMappingURL=main.fccc2493.css.map*/