html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}
@font-face{font-family:Monaspace Radon;font-display:swap;font-style:normal;font-weight:400 800;src:url(/MonaspaceRadon-Regular.woff2)format("woff2")}@font-face{font-family:Cascadia Code;font-display:swap;font-style:normal;font-weight:200 700;src:url(/fonts/CascadiaCode.woff2)format("woff2")}@font-face{font-family:Genshin UI;font-display:swap;font-style:normal;font-weight:400 900;src:url(/fonts/HYWenHei-85W.ttf)format("truetype")}@font-face{font-family:Teyvat Black;font-display:swap;font-style:normal;font-weight:400;src:url(/fonts/TeyvatBlack-Regular.ttf)format("truetype")}@font-face{font-family:Star Rail UI;font-display:swap;font-style:normal;font-weight:400 800;src:url(/fonts/HYRunYuan-65W.ttf)format("truetype")}@font-face{font-family:Star Rail Neue;font-display:swap;font-style:normal;font-weight:400;src:url(/fonts/StarRailNeue-Sans-Regular.ttf)format("truetype")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;scrollbar-width:none;scroll-padding-top:64px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root::-webkit-scrollbar{display:none}body::-webkit-scrollbar{display:none}*{box-sizing:border-box}html,body{max-width:100vw;margin:0;padding:0;overflow-x:hidden}body{min-height:100vh}.initial-loader{clip-path:inset(0);z-index:2000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.initial-loader__content{flex-direction:column;align-items:center;gap:20px;width:min(320px,84vw);padding:32px;display:flex}.initial-loader__avatar-frame{width:72px;height:72px;position:relative}.initial-loader__avatar{object-fit:cover;z-index:1;border-radius:50%;width:72px;height:72px;display:block;position:relative}.initial-loader__pulse{border:1px solid;border-radius:50%;animation:1.35s ease-in-out infinite initial-loader-pulse;position:absolute;inset:-8px}.initial-loader__progress{width:100%;height:2px;overflow:hidden}.initial-loader__progress>span{transform-origin:0;width:100%;height:100%;transition:transform .18s ease-out;display:block}a{color:inherit}::selection{color:#102018;background:#87dbac}.mono{font-family:Monaspace Radon,monospace}.terminal-mono{font-variant-ligatures:contextual;font-family:Cascadia Code,SFMono-Regular,Consolas,Liberation Mono,monospace}.site-header .MuiButtonBase-root{font-family:Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,Arial,sans-serif}.game-page,.game-drawer--genshin{--game-accent:#b99a58;--game-accent-ink:#233b38;--game-header:#243d3a;--game-header-ink:#f6f8f4;--game-glyph:#7b6238;--game-hero:#dfece7;--game-line:#fff3;--game-icon-surface:#263d38;--game-portrait:#d6e5df;--game-showcase:#eaf2ef;--game-stats:#f7faf8}.game-page{min-height:100vh}.game-page--starRail,.game-drawer--starRail{--game-accent:#78dcff;--game-accent-ink:#12202a;--game-header:#090f18;--game-header-ink:#eef8fc;--game-glyph:#78dcff;--game-hero:#111a26;--game-line:#78dcff33;--game-icon-surface:#09131f;--game-portrait:#1b2937;--game-showcase:#131d29;--game-stats:#0b111a}.game-page--genshin.game-page--dark,.game-drawer--genshin.game-drawer--dark{--game-accent:#d6b96f;--game-accent-ink:#1a160c;--game-glyph:#e2c77e;--game-hero:#101713;--game-line:#d6b96f33;--game-icon-surface:#17231d;--game-portrait:#202c26;--game-showcase:#111914;--game-stats:#18211d}.game-page--starRail.game-page--light,.game-drawer--starRail.game-drawer--light{--game-accent:#287f9d;--game-accent-ink:#fff;--game-glyph:#287f9d;--game-hero:#e5eef2;--game-line:#287f9d33;--game-icon-surface:#263c48;--game-portrait:#dce9ee;--game-showcase:#edf3f5;--game-stats:#f8fafb}.game-stat-icon *{fill:currentColor!important;stroke:currentColor!important}.game-page--starRail section:first-child{border-bottom:3px solid #f1ca68}.game-mono{font-variant-numeric:tabular-nums}.game-page--genshin .game-glyph,.game-drawer--genshin .game-glyph{font-family:Teyvat Black,sans-serif!important}.game-page--starRail .game-glyph,.game-drawer--starRail .game-glyph{font-family:Star Rail Neue,sans-serif!important}.game-glyph{text-transform:uppercase;font-weight:400}.game-glyph--slogan{max-width:620px;font-size:24px;line-height:1.45}.game-character-card{border-color:var(--game-line);transition:border-color .22s,transform .22s}.game-character-card:hover{border-color:var(--game-accent);transform:translateY(-5px)}.hero-image{object-fit:cover;object-position:center 58%}.hero-parallax-image{will-change:transform;position:absolute;inset:-7% 0}.hero-parallax-overlay{opacity:.66;background:#07090a;position:absolute;inset:0}.hero-parallax-content{will-change:opacity, transform;width:100%;position:relative}.hero-scroll-cue{z-index:3;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.scroll-cue{animation:1.8s ease-in-out infinite scroll-cue}main>.reveal-section{min-height:calc(100svh - 64px);display:flex}main>.reveal-section>div{flex-direction:column;flex:auto;justify-content:center;width:100%;min-height:0;display:flex}.subpage-entrance{min-height:100vh;position:relative}.subpage-entrance__veil{pointer-events:none;transform-origin:inherit;z-index:1090;position:fixed;inset:64px 0 0;overflow:hidden}.subpage-entrance__frame{aspect-ratio:1;border:1px solid;width:160px;display:block;position:absolute;top:calc(50% - 80px);left:calc(50% - 80px);transform:rotate(45deg)}.subpage-entrance__line{height:3px;display:block;position:absolute;top:50%;left:0;right:0}.subpage-loading{min-height:100svh;padding-top:64px}.subpage-loading__stage{flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:calc(100svh - 64px);padding:32px;display:flex;position:relative;overflow:hidden}.subpage-loading__frame{aspect-ratio:1;border:2px solid;border-radius:4px;width:52px;animation:.85s linear infinite subpage-frame-spin;position:relative}.subpage-loading__rail{width:min(280px,72vw);height:2px;position:relative;overflow:hidden}.subpage-loading__rail>span{width:38%;height:100%;animation:.9s ease-in-out infinite subpage-rail-progress;display:block;transform:translate(-110%)}.subpage-loading--genshin{font-family:Genshin UI,sans-serif}.subpage-loading--starRail{font-family:Star Rail UI,sans-serif}@media (min-width:900px){:root{scroll-padding-top:72px}main>.reveal-section{min-height:calc(100svh - 72px)}.subpage-entrance__veil{inset-block-start:72px}.subpage-loading{padding-top:72px}.subpage-loading__stage{min-height:calc(100svh - 72px)}}.carousel-image{filter:brightness(1.08)saturate(1.03);object-fit:cover;opacity:0;z-index:0;transition:opacity .52s,transform .72s;transform:scale(1.018)}.carousel-image--previous{opacity:1;transform:scale(1)}.carousel-image--active{opacity:1;z-index:1;transform:scale(1)}.terminal-line{overflow-wrap:anywhere;white-space:pre-wrap;width:100%;min-height:1.9em}.terminal-cursor{color:#87dbac;margin-left:3px;animation:.92s step-end infinite terminal-cursor}@keyframes terminal-cursor{50%{opacity:0}}@keyframes initial-loader-pulse{0%,to{opacity:.3;transform:scale(.94)}50%{opacity:1;transform:scale(1.08)}}@keyframes subpage-frame-spin{to{transform:rotate(360deg)}}@keyframes subpage-rail-progress{0%{transform:translate(-110%)}to{transform:translate(375%)}}@keyframes scroll-cue{0%,to{opacity:.58;transform:translateY(0)}50%{opacity:1;transform:translateY(9px)}}.project-image{transition:transform .28s}.project-image--interface{object-fit:contain;object-position:center;transform:none}.project-image--crop{object-fit:cover;object-position:center 46%;transform:scale(1.35)translateY(-3%)}.project-card:hover .project-image--interface{transform:scale(1.015)}.project-card:hover .project-image--crop{transform:scale(1.39)translateY(-3%)}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.project-image,.game-character-card{transition:none}.carousel-image,.initial-loader__pulse,.scroll-cue,.subpage-loading__frame,.subpage-loading__rail>span,.terminal-cursor,.terminal-line{clip-path:none;animation:none}.carousel-image{transition:none}}
.game-page--genshin,.game-page--genshin *,.game-drawer--genshin,.game-drawer--genshin *{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAKJlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgExAAIAAAAdAAAAWodpAAQAAAABAAAAeAAAAAAAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKQAAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAACCgAwAEAAAAAQAAACAAAAAA5k5FKQAAAAlwSFlzAAALEwAACxMBAJqcGAAABOVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6YWZiN2E5OTEtNDIxZS1iYjRhLTg5OTctNWU0ZTI4NDE1YjBiPC9zdFJlZjppbnN0YW5jZUlEPgog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) 0 0,auto}.game-page--starRail,.game-page--starRail *,.game-drawer--starRail,.game-drawer--starRail *{cursor:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAWJAAAFiQFtaJ36AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANWSURBVHgB7VZNaBNBFH4zm7YW+pNcpD9pmh4UxRZSomJBJbkJUvSiFA+SQkH01OLFS2lu7UWboiBVIcVDERVERRAUGrUYsI0pqJdesv1LPQj5O9gm2RlnNtntpk22TVpTD36Q7MvMy+bb733zXiCy6rfCPgILUqUjHv46tV9EMBAapZQ6MKkMxsKBfigzMEI0ygMptWYECqPxlYC3nGrgtMEg8uB3PCwvUAAXU2MqvhxwQRmAlUBKrWvXrRSBtxxqYFNjp8gDJAi8DDmb5VBDUSCKsaFQzl9VQyWAGAGSXi+YqKgRWZy9CHtPAMkEJJreLt+KBfQiEQ6ORkJBI+wBMgQIWZBLIG1LIJNOST+uJMHI8hcb7BIZAoiXgJlQU4JYPAGTT1/rfdeKkRBMrAaHYNcEKDOhwDxANhSIxRJwfcAtvxaXwgVvQAhxx1YCoVINmvUAjWJDFdA8JeAqnL90De4/nNS7j5UZNFSKGoi/8XOelta8iV8hMDYcVTfrm+05yZaWJnjzbFy+6kAkOOk0NXaJsAOonVAwHABK9E3IS9FxqhuGb4/rpRWlhkwAUSLyK0nl7wNGYw1YrQ3q55E7D2QieiZl3uiP7KCDygTS2YnI27EW9XW1mSsj8G7KA1dd59Q9rkYhk7K6TrAydJrM9gnYCQEQKmQCVJJyCdTXqHErU+CR9xa8Z0S0aigmVdRgT+6sa7b3FueBNZAJ4IqqLQNpM846bDAfegKDQy51jSswzMqCKPWZWk74oAjIBExtnRkCBQbSgvhzy9qg25VTkjNddtZO6EsoElgTi9wD2oFkMec/bh99c3CorQceT7xV165c7gYC1AdFIueRcXYgVRRI5kr09Y7AB0ZgM0532UXWN+agSKgKIIREpDOQbg7ck586349z+ZnzfVACVAKUTUTejLQDqdXcqMZ3Pc8L3oTLL5VQ/xwCCrQDqaP9iNoL9MDkB0gKPigBSAliSzPu5HpiiCtQXXtQJAjGBEIvUIRs337MG6c/B2DaPwuf/AF5VCvgc+G7/5WvznzcCSXAoKESrayuj7JGMkaS2JM9mh6+FVmacRxrP2y70dezhZDF0lTS8dv42SzkfzepClHpCXrghEDANkUhQiWnyXyy6BPwH/8E/gDrE445VXMebgAAAABJRU5ErkJggg==) 0 0,auto}
