@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAn4ABMAAAAAEwQAAAmOAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGjQbgnQcLj9IVkFSgQEGYD9TVEFUgQIAgQovahEICok0h0ULIAAwhzoBNgIkAzwEIAWHJgeBDgwHG6QQUdRKTmoBFD8K42bniObKrG3LZFcMWZzFmrjTFhQ6TVTqPJcInrfrvzq3b2PGn1wwMiNYGTy9ViREYARlL1zAGcPdPqBt3gNWrfKthv4xnM+b9caw+wmjgEUVRjHXhS6jgCK6zf5HiWQacJpGdAgdrbV6g/Rf1BfxRqZVQnrxRVWSJb6RLFnyu0elilmjeoSQCKnxsmwLaddUMjnksriSYuuPl06EAl7KfAiWQjCUETz0zNZ3EII94CDQtzkMfZ/9IkkY8tZRZTDky5ZVwBAM+GYpdd4ZVAWYImnLkiTg48l79gGx3D+VBtLeyg8u7bJAd4uo0pFuQBFysE9C95l0W4Fkiao6GfrDbu77lVU7wk9cV3uqOsXmQiMkhVKl1ugjzUAJBSIkkVWHijkpkVSyUFsgVBuJMA0N+ZnXtyUv5yMigGdfQRmwL1AAjQ3YXG6iIFNSUdPQo8+AISPGAltBMDQRAtyf4ZspLlZkpyOVoMZPvFGWzvk8p5SUC/NWPMj6T2/Yas2EdlON5GkfdkeFwVGjta825H89NIenlLWAPAp5h1KDtRhCaAQWMsFKtEvOKpIhgLHlXPARokkgEGEOAkqxJRQpKYq4ezahIiLHP6hZpqMbV0pUF2vdvEimLEQ/iIUYLgYWs0VXGVlLTOPdaPmFfCC/XrtzqVo1ez7vz6+Kd2+7o11ZJ+4MreLbB5BKVGxobAq4jZYalZ5aX2CKJiwUuc9GNJyi4M8bGyKcdjSRrG4JohdF8buJfmQefbYYREnMFsOoiNliFDVxmRgL0XUmUMLqzW0A4gCQAhWGYCQpFNukwXhIkPMsbRI19ewtw8Cp2Wj/Ro5cM2OTAbJAvZ/L4opBXb9+UHscYuOKM/W8isgwN26Exexjizmfnlp9dE3hOSqdZ/F5QqbckIlPb+oKfXxd6hftJ7Sm/uyPYpONza84CRlMNk/uhOrLpyf53982++zRkXNu3g3VF8qFbx1+7fbHZ9DrB3VXWNSmhnT2vrwS1+1Z+kHGBaZIhnnvuLBTNDeA340D1DWu5/jEa9pVfl6+Jij+yo3EELNixXCLjr173Q5eDP7Y7/L4iQFHbjpaJLFoP4cCsYP6sAPL7gMHNg53yYjqxqTDrYqLDl5DzW/eTLjYxCvucprjI3yl2ykKowKUC2Ox2FJLFo6Fa1HBWLC2jMCIIBEmklkYhmkpmBhTm/LCvJAH5oGcMKcgFEP1xUdho8ANPa6RFD99/PN60fjj9eXy2Eex4B5MpmRapXidzFk1p4uLk3+hn6jAP9ovJcXPPwk8o/0ltizbdbnTprvx4PSxT0VZ3Xc772aN7RflgbXRYwc3hLNO+k878nxGwfuVM8m8Gs7WEoVGWLHwSpx4vNSHBCMNqJ4m15Kp/TfHHVkQd++eY7PGN4W5byTs+6Ft8Ozvb/D60btv37de8ER0mS3P/0sLW84qGjEVkwztPzz06eGUWwKLwPb0D/WFd3vltl2aP276KpM0JNz6AfnAnZ5ADlF2zVyZ2OkxHSMxWPMnSZLbbDR3F1UjPVqp4d68da13F1YZujdWw7271iecO2l9+/4p47Oztjck355/75wFOI+VdGDqbNGs+ISgxg3iB2jb2r+b0CWsNLHIM4sdv8SDSFBP/Oromz6FNCWw2iMTxV0R8QLyBTkpe0j5+pSSJOOTB5Mck/gh3IopuNQnhKj02t3FL80gGbEh89SZcwTxcYt5cZT/nMnB3uXfPy8BSpVMBuRx+ZhACGzDBmwHsJRAjhotOnzuj2wDz3ug2wOUAY2NgZln9/TK/enG/oE4rO1wxvGUFMAxsZ0qNjRC7hl9d17e7imbgDt6uJXhUobDg7v3RX/yRCKxgMhfyiKcZfbpk0wmCcdQlIAOHeakXLvCNt++WfKiozNqSZxxJotn+c0a7DdPsx7DPYgKIDxwwYUZDg9aJbxocTjcwovr9WAsVV32mQoiiIOCHc60Oltst9qCQYuCqN1yHo0Kj60OgI2OqmiuBUWrNA0NDhYCDcdpmMrs1fZZ0xdTzMr1HdPtIHstYhqaPDDA5YxUDx7J4fJiisBSDI/L6G/bn34GNy8Q2g044ZTulAdFLb0tI6NNxfj3DzLjWiNGxje1pz7aXOcNV68lDPEd2SXl6VfBuwmHzdf1gxFy1HvA7pD8I2BnnmyGw852Cg5XbgIdEEGE5UCzen5jTlG6JCU5iajlxVcsXvbcS0SAcg1dcesWJLVK8+hYHOYQ+Pjy+EyVGXP0aPTFagrV9E03hCQvYx+g47KGq+1GsLj8uBIyihNw33YUe8PNC4BOJ3Lm1AglLV3nCuvUdIP+v15tVGbWIwgxLVpPkfpthCGpTKG+oA/DQfsKKvxhScqaN6FuElAUtTKv2UYgOmQegsN/n7njHUju8wM4VTcm+Q8xfX9SFwjTzdVqu95UOWSIGOabH8OGBEba//8Yxl3GcPdP/dMBOoSX/0z5SZmBoLbaPs+9asaMpb36yknKaw6FqWZa6A5vDa02mhkOba1q6KtLV208xrkwmW5C4VD6n2fvRjADy2qDYYnNy+H10Fq0LMbNzS863gkO7iQ8eC48/Ny5m59tOcEso3u7Qg3yrqDL6eKXwJAuWnhylfbWrRObe66rzX59+XDtzusnL66dI/86ArmtLlzED860Ef3bFPV78OX/zFTA11fcBn2Vntb7qiGBSgLBHyuv/uEaqqoTgSpOyjlzh86me1Vriv7i9rLPLvtghWmSnblRbAsBJL/4dScSQTBxOivHMO5QvBBY0iheJvfwWLxLOGzYKZyM4zVc2Cll46zEpeUV4MqGEWZj22SdOxhGAjgs9AEnfT+RoiMfcDb0GS5NncKVxju4Nt/mRk13O9Gz3FLct5oCD6wkwUNrCfHIUg6SMf8LwQGyVaBUqpLPW5BaMpRshEpl8nS1qw5dgnzlik8QBXmdy5UrIH74heTKZKMSilQso4hsRiGraQZRzxpNGqlEJMsXuAU7GlcR8mWSykUpVkWGyIf0a8v4qEQp5CtGsMiZa+4ESYQy+WilCiguHzxMXO54ogShooTV2bj2z1zL6DYSoImoQ8lFUWxMLBNQQgLkV2tHYgUoIbkuREz+fJHKxxWBcnvu3KQppFCxLkguB1NyVSp/TknRvNwYlCdbblWu3ze6owHdWluhE5tgQ6ej2SV65CijijoaRfSiH4Nqz1OpfEW+WeI/oU0ly60zkV9YzOQSYtZVEGYmrysTZAJkY4qZtIBD9/LYTIK7Nww3vMiYBwA=)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-cyrillic-wght-normal.Dvxsihut.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-greek-wght-normal.DL7QRZyv.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-vietnamese-wght-normal.usUDDRr7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-latin-ext-wght-normal.Ch3YOpNY.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-latin-wght-normal.DHIcAJRg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#efeee9;font-synthesis:none;--ink:#efeee9;--muted:#aab0b0;--blue:#a6c4d4;--line:#3d4548;background:#111416;font-family:Manrope Variable,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--blue);outline-offset:5px}.skip{z-index:20;background:var(--ink);color:#111;padding:1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip:focus{transform:none}.hero{align-items:flex-end;min-height:100svh;padding:9rem 6vw 4rem;display:flex;position:relative;overflow:hidden}.hero-copy{z-index:2;pointer-events:none;width:100%;position:relative}.hero-copy a{pointer-events:auto}.micro,.section-index,.side-label,.project-number,.project-tag,.skills span,.photo-placeholder,.note>span,.project-link{letter-spacing:.04em;font-family:JetBrains Mono Variable,monospace;font-size:.68rem}.micro{color:#c4ccce}.dot{color:var(--blue);margin:0 .5rem;font-size:.5rem}.hero h1{letter-spacing:-.085em;margin:2.5rem 0 3rem;font-size:clamp(5rem,13vw,13.5rem);font-weight:600;line-height:.82}.period{color:var(--blue)}.hero-bottom{color:#c5cbcb;justify-content:space-between;align-items:end;font-size:.85rem;line-height:1.6;display:flex}.hero-bottom p{margin:0}.scroll-cue{border-bottom:1px solid var(--line);align-items:center;gap:3rem;padding-bottom:.6rem;display:flex}.scroll-cue span{font-size:1.3rem}.scene-canvas{inset:0;position:absolute!important}.fallback-orbit{border:1px solid #7894a34a;border-radius:50%;position:absolute;inset:13% 12%;transform:rotate(-22deg)}.fallback-orbit:before,.fallback-orbit:after,.fallback-orbit i{content:"";border:1px solid #7894a34a;border-radius:50%;position:absolute;inset:8% -2%;transform:rotate(60deg)}.fallback-orbit:after{transform:rotate(-60deg)}.fallback-orbit i:first-child{inset:30% -10%;transform:rotate(0)}.fallback-orbit i:nth-child(2){inset:10% 30%;transform:rotate(0)}.fallback-orbit i:nth-child(3){inset:18%;transform:rotate(35deg)}.fallback-orbit i:nth-child(4){inset:35%;transform:rotate(-35deg)}.section{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8vw;padding:clamp(7rem,14vw,15rem) 6vw;scroll-margin-top:4rem;display:grid}.section-index{color:var(--blue);margin:0 0 3rem}.section h2,.contact h2{letter-spacing:-.065em;margin:0;font-size:clamp(3.5rem,7.8vw,8.5rem);font-weight:500;line-height:.98}.section h2 em,.contact h2 em{color:#929fa2;font-style:normal}.lead{letter-spacing:-.04em;max-width:22ch;margin:0 0 2rem;font-size:clamp(1.4rem,2.5vw,2.4rem);line-height:1.35}.placeholder,.section-intro{color:var(--muted);max-width:42ch;font-size:.95rem;line-height:1.8}.photo-frame{aspect-ratio:4/5;background:linear-gradient(140deg,#202b30,#151a1c 65%);border:1px solid #4c595e;width:min(100%,390px);margin-top:5rem;overflow:hidden}.photo-frame img{object-fit:cover;width:100%;height:100%}.photo-placeholder{color:#a8b8bd;flex-direction:column;justify-content:space-between;height:100%;padding:1.2rem;display:flex}.photo-placeholder:after{content:"+";color:#60747c;order:0;align-self:center;font-size:3rem;font-weight:200}.photo-placeholder span:last-child{order:1}.skills>div{border-top:1px solid var(--line);padding:1.5rem 0 2.5rem}.skills span{color:var(--muted)}.skills p{letter-spacing:-.04em;margin:1rem 0 0;font-size:clamp(1.4rem,2.4vw,2.5rem)}.skills b{color:#647982;font-weight:400}.project-list{margin-top:4rem}.project{border-top:1px solid var(--line);grid-template-columns:3rem 1fr;gap:1rem;padding:1.5rem 0 2.5rem;display:grid}.project-number{color:var(--blue)}.project h3,.note h3{letter-spacing:-.03em;margin:0 0 1rem;font-size:1.25rem;font-weight:500}.project p,.note p{color:var(--muted);font-size:.85rem;line-height:1.7}.project-tag,.project-link{color:#9daeb4}.project-link,.project>a{grid-column:2;margin-top:.7rem;font-size:.7rem}.project>a{text-decoration:underline}.note{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:4rem 1fr auto;gap:1rem;margin-top:4rem;padding:1.5rem 0;display:grid}.note>span{color:var(--blue)}.contact{color:#182225;background:#d1e0e3;padding:clamp(7rem,14vw,15rem) 6vw 2rem;scroll-margin-top:4rem}.contact-links{flex-wrap:wrap;gap:2.5rem;margin:5rem 0 10rem;font-size:.9rem;display:flex}.contact-links a{border-bottom:1px solid #718e97;padding-bottom:.5rem}.contact-links span{color:#4c656c}footer{border-top:1px solid #9bb4bb;justify-content:space-between;padding-top:1.5rem;font-size:.75rem;display:flex}.article-page{max-width:850px;min-height:100vh;margin:auto;padding:8rem 6vw}.article-page .section-index{margin-top:6rem}.article-page h1{letter-spacing:-.06em;font-size:clamp(3rem,7vw,6rem)}.article-page article{color:var(--muted);margin-top:5rem;line-height:1.8}@media (width<=700px){.hero{min-height:100svh;padding:8rem 5vw 3rem}.hero h1{margin:2rem 0;font-size:clamp(4.6rem,17vw,8rem)}.hero-art{opacity:.85;width:100%;height:100%;position:absolute;inset:0}.hero-bottom{font-size:.75rem}.section{grid-template-columns:1fr;gap:3rem;padding:7rem 5vw}.section-index{margin-bottom:2rem}.photo-frame{max-width:320px;margin-top:3rem}.skills,.project-list,.note{margin-top:3rem}.contact{padding:7rem 5vw 2rem}.contact-links{flex-direction:column;align-items:flex-start;gap:1.5rem;margin:4rem 0 7rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.scene-canvas{cursor:default;touch-action:pan-y}.contact-links{overflow-wrap:anywhere}.scene-ready .fallback-orbit{opacity:0}.fallback-orbit{border-color:#a6c4d466;transition:opacity .4s;transform:rotate(-24deg)scaleY(.55)}.fallback-orbit i{inset:3%;transform:rotate(6deg)!important}.fallback-orbit i:nth-child(2){inset:7%}.fallback-orbit i:nth-child(3){inset:11%}.fallback-orbit i:nth-child(4){inset:15%}.fallback-orbit:before{inset:18%;transform:rotate(-5deg)}.fallback-orbit:after{inset:22%;transform:rotate(5deg)}.ribbon-controls>span{margin-bottom:.8rem;display:block}.ribbon-controls button{font:inherit;color:#dfebef;cursor:pointer;background:#111416cc;border:1px solid #536874;border-radius:2rem;margin-left:.5rem;padding:.65rem 1rem}.ribbon-controls button:focus-visible{outline-offset:4px;outline:2px solid #a6c4d4}.ribbon-controls button:disabled{opacity:.5;cursor:default}@media (width<=700px){.ribbon-controls{z-index:4;text-align:right;color:#b9cbd3;letter-spacing:.02em;font-size:.65rem;position:absolute;top:5.5rem;bottom:auto;right:6vw}.ribbon-controls>span{font-size:.6rem}}.terminal-section{border-top:1px solid var(--line);padding:7rem 6vw}.terminal-section h2{letter-spacing:-.05em;margin:0;font-size:clamp(2.5rem,5vw,5rem);font-weight:500}.local-terminal{background:#0d1012;border:1px solid #52636b;border-radius:12px;margin-top:3rem;font-family:JetBrains Mono Variable,monospace;font-size:.78rem;overflow:hidden}.terminal-bar{border-bottom:1px solid var(--line);color:var(--blue);justify-content:space-between;padding:1rem 1.5rem;display:flex}.terminal-info,.terminal-status{color:#b1c1c8;overflow-wrap:anywhere;margin:1.5rem;line-height:1.7}.terminal-actions{gap:.8rem;margin:0 1.5rem;display:flex}.local-terminal button{font:inherit;color:#eff7fa;cursor:pointer;background:#243039;border:1px solid #687d87;border-radius:4px;padding:.6rem 1rem}.local-terminal button:disabled{opacity:.45;cursor:default}.local-terminal :focus-visible{outline:2px solid var(--blue);outline-offset:3px}.terminal-output{white-space:pre-wrap;overflow-wrap:anywhere;border-top:1px solid var(--line);height:300px;font:inherit;margin:0;padding:1.5rem;line-height:1.8;overflow:auto}.local-terminal form{border-top:1px solid var(--line);padding:1.5rem}.local-terminal label{color:var(--blue);margin-bottom:.8rem;display:block}.terminal-input{align-items:center;gap:1rem;display:flex}.terminal-input input{color:#fff;min-width:0;font:inherit;background:0 0;border:0;flex:1;padding:.5rem}.terminal-status{min-height:2.7em}.terminal-model{margin:1.5rem}.terminal-model p{color:#b1c1c8;max-width:75ch;line-height:1.7}.model-options{border:0;margin:0;padding:0}.model-options legend{color:var(--blue);margin-bottom:1rem}.local-terminal .model-option{cursor:pointer;border:1px solid #3d4548;border-radius:6px;align-items:center;gap:1rem;margin:0 0 .65rem;padding:1rem;display:flex}.model-option input{accent-color:#a6c4d4;flex-shrink:0}.model-option-copy{flex-direction:column;flex:1;gap:.4rem;min-width:0;display:flex}.model-option-copy strong{color:#efeee9;font-weight:500}.model-option-copy>span{color:#afc1c9;font-size:.7rem}.capacity-display{flex-direction:column;align-items:flex-end;gap:.4rem;display:flex}.capacity-bars{align-items:flex-end;gap:4px;height:22px;display:flex}.capacity-bars i{background:#39484f;border:1px solid #607580;width:8px;height:10px;display:block}.capacity-bars i:nth-child(2){height:16px}.capacity-bars i:nth-child(3){height:22px}.capacity-label{color:#c8d8df;font-size:.6rem}@media (width<=450px){.local-terminal .model-option{gap:.6rem;padding:.8rem}.model-option-copy strong{font-size:.7rem}}.capacity-bars i:nth-child(4){height:27px}.capacity-bars i:nth-child(5),.capacity-bars{height:32px}.model-warning{border-left:2px solid var(--blue);padding-left:1rem}.terminal-actions{flex-wrap:wrap}@media (width<=450px){.terminal-bar{flex-wrap:wrap;gap:.5rem;padding:1rem}.model-option-copy>span{font-size:.6rem}}.page-toolbar{z-index:5;justify-content:space-between;align-items:center;padding:1.5rem 6vw;display:flex;position:absolute;top:0;left:0;right:0}.wordmark{letter-spacing:.04em;font-size:.8rem;font-weight:650}.site-language{color:var(--muted);align-items:center;gap:.6rem;display:flex}.site-language select{font:inherit;color:var(--ink);background:#111416;border:1px solid #39434a;border-radius:2rem;padding:.5rem .8rem;font-size:.75rem}.site-language select:focus-visible{outline:2px solid var(--blue);outline-offset:4px}.hero h1{letter-spacing:-.075em;font-weight:500}.hero h1 span:not(.period){color:var(--ink);-webkit-text-stroke:0}.hero h1 .period{display:none}.hero-art{opacity:.85;width:100%;height:100%;position:absolute;inset:0}.section{grid-template-columns:.85fr 1.15fr;gap:10vw;padding-block:clamp(5rem,9vw,9rem)}.section h2,.contact h2{font-size:clamp(3rem,6vw,6.5rem)}.section-index{color:var(--muted);margin-bottom:2rem;font-family:inherit;font-size:.8rem}.section h2 em{color:#a9b4b8}.photo-frame{border-radius:10px;width:min(100%,300px);margin-top:3rem}.project-number{display:none}.project{grid-template-columns:1fr}.project-link,.project>a{grid-column:1}.project-list,.skills{margin-top:2rem}.contact h2 em{color:var(--blue)}.contact-links{margin:3rem 0 6rem}.contact footer,.contact-links a{border-color:var(--line)}.local-terminal{border-color:#39434a;border-radius:14px;max-width:1050px}.terminal-model{margin-block:1rem}.model-picker{border-bottom:1px solid var(--line);padding-bottom:1rem}.model-picker summary{cursor:pointer;color:var(--muted);justify-content:space-between;gap:1rem;padding:.5rem 0;display:flex}.model-picker summary:after{content:"+";color:var(--blue)}.model-picker[open] summary:after{content:"-"}.model-picker summary strong{color:var(--ink);margin-left:auto;font-weight:500}.model-options{margin-top:1rem}.terminal-model>p{color:#a6b4bb;font-size:.68rem}.local-terminal .model-option{border-color:#343f46;border-radius:6px;padding:.8rem}.terminal-output{overscroll-behavior:contain;height:260px}.terminal-section{padding-block:6rem}.ribbon-controls button{background:#111416c9;border-color:#44535c}.ribbon-controls{z-index:4;text-align:right;color:#b9cbd3;letter-spacing:.02em;font-size:.65rem;position:absolute;top:5.5rem;bottom:auto;right:6vw}.hero-bottom{z-index:1;position:relative}html[lang=zh-Hans] h1,html[lang=zh-Hans] h2{letter-spacing:-.025em;line-height:1.15}html[lang=zh-Hans]{font-family:Manrope Variable,Microsoft YaHei,PingFang SC,sans-serif}@media (width>=1800px){main{width:100%;margin-inline:auto}.page-toolbar{max-width:1800px;margin-inline:auto}}@media (width<=700px){.section{grid-template-columns:1fr;gap:2.5rem;padding-block:5rem}.hero-art{opacity:.85;width:100%;height:100%;position:absolute;inset:0}.hero{padding-bottom:2.5rem}.hero h1{font-size:clamp(4.5rem,16vw,7rem)}.ribbon-controls{z-index:4;text-align:right;color:#b9cbd3;letter-spacing:.02em;font-size:.65rem;position:absolute;top:5.5rem;bottom:auto;right:6vw}.hero-bottom{gap:1rem}.model-picker summary{flex-wrap:wrap}.model-picker summary strong{font-size:.7rem}.contact{padding-top:5rem}.terminal-section,.page-toolbar{padding-inline:5vw}}.hero-art{z-index:0}.fallback-orbit{will-change:transform;animation:10s linear infinite orbit-drift;inset:-10% -8%}.scene-ready .fallback-orbit{visibility:hidden;transition:none;animation:none}@keyframes orbit-drift{0%{transform:rotate(-24deg)scaleY(.7)}to{transform:rotate(336deg)scaleY(.7)}}.resume-link{border-bottom:1px solid var(--blue);margin-top:1rem;padding-bottom:.5rem;font-size:.85rem;display:inline-block}@media (width<=700px){.ribbon-controls{top:5rem;right:5vw}.hero-art{opacity:.65}}:root{--ink:#171717;--muted:#616161;--blue:#343434;--line:#e4e4e4;color:var(--ink);background:#fff}body{background:#fff}a,button,summary{-webkit-tap-highlight-color:transparent}.hero{color:#fff;background:#080808;padding-inline:6vw}.hero-copy{text-shadow:0 2px 28px #000}.hero h1{letter-spacing:-.065em;font-size:clamp(5rem,11vw,11rem);font-weight:500;line-height:.95}.hero h1 span:not(.period){color:#fff}.hero .micro{letter-spacing:0;color:#ddd;font-family:inherit;font-size:.9rem}.hero .dot{color:#aaa}.hero-bottom{color:#eee;font-size:.95rem}.scroll-cue{background:#08080890;border:1px solid #ffffff50;border-radius:99px;gap:2rem;padding:.75rem 1.25rem}.hero-art{filter:grayscale();opacity:.6}.ribbon-controls{color:#ddd}.ribbon-controls button{color:#fff;background:#141414d9;border-color:#555}.page-toolbar{color:#fff;gap:2rem;max-width:none!important}.wordmark{letter-spacing:-.03em;font-size:1rem}.wordmark span{color:#aaa}.main-nav{align-items:center;gap:2rem;margin-left:auto;font-size:.85rem;display:flex}.main-nav a:hover{text-underline-offset:5px;text-decoration:underline}.site-language select{color:#fff;background:#202020;border-color:#444}body:has(.article-page) .page-toolbar{color:#171717}body:has(.article-page) .site-language select{color:#171717;background:#f5f5f5;border-color:#ddd}.section{border-top:0;grid-template-columns:.8fr 1.2fr;gap:8vw;padding-block:clamp(4rem,7vw,8rem)}.section h2,.contact h2{letter-spacing:-.05em;font-size:clamp(2.8rem,4.5vw,5rem);font-weight:500;line-height:1.08}.section h2 em,.contact h2 em{color:inherit}.section-index{letter-spacing:0;color:#666;margin-bottom:1.5rem;font-size:.85rem;display:block}.lead{max-width:26ch;font-size:clamp(1.5rem,2.5vw,2.2rem);font-weight:450}.section-intro{max-width:52ch;font-size:1rem;line-height:1.7}.resume-link{color:#fff;background:#171717;border:0;border-radius:99px;padding:.85rem 1.2rem;font-size:.85rem}.photo-frame{background:#f3f3f3;border:0;border-radius:0}.photo-placeholder{color:#555}.photo-placeholder:after{color:#888}.expertise{background:#f6f6f6}.skills{margin-top:2rem}.skills span,.project-tag{letter-spacing:0;color:#666;font-family:inherit;font-size:.8rem}.skills p{font-size:1.8rem}.skills b{color:#aaa}.work{display:block}.work .section-heading h2 br{display:none}.work .section-heading h2 em:before{content:" "}.work-content>.section-intro{margin-top:1.5rem}.project-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;margin-top:3rem;display:grid}.project{border-top:1px solid #ccc;flex-direction:column;gap:1rem;min-width:0;padding:1.5rem 0 0;display:flex}.project h3{letter-spacing:-.04em;font-size:1.7rem;font-weight:500}.project p{font-size:.95rem;line-height:1.75}.project>a{text-underline-offset:5px;align-self:flex-start;margin-top:auto;padding-top:1rem;font-size:.85rem}.project-tag{line-height:1.6}.notes{background:#f6f6f6}.note{background:#fff;border:0;border-radius:4px;grid-template-columns:1fr auto;gap:1rem;margin-top:2rem;padding:2rem;transition:background .2s}.note:hover{background:#ededed}.note>span:first-child{color:#666;letter-spacing:0;grid-column:1/-1;font-family:inherit;font-size:.8rem}.note h3{letter-spacing:-.04em;font-size:2rem}.note p{font-size:1rem}.note>span:last-child{color:#171717;font-size:1.5rem}.terminal-section{border:0;padding-block:6rem}.terminal-section h2{letter-spacing:-.045em;font-size:clamp(2.5rem,4vw,4rem)}.local-terminal{--ink:#171717;--muted:#616161;--blue:#343434;--line:#dedede;color:#171717;background:#f8f8f8;border:1px solid #ddd;border-radius:16px;max-width:1100px;font-family:inherit;font-size:.85rem}.terminal-bar,.terminal-info,.terminal-status,.terminal-model p,.terminal-model>p{color:#555}.terminal-model>p{font-size:.8rem}.local-terminal button{color:#fff;background:#171717;border-color:#171717;border-radius:99px}.local-terminal .model-option{border-color:#ddd;border-radius:8px}.model-option.is-selected{background:#eaeaea;border-color:#666}.model-option-copy strong{color:#171717}.model-option-copy>span,.capacity-label{color:#555}.model-option input{accent-color:#171717}.capacity-bars i{background:#ddd;border-color:#aaa}.capacity-bars i.filled{background:#444;border-color:#444}.terminal-output{background:#fff;font-family:JetBrains Mono Variable,monospace;font-size:.78rem}.terminal-input input{color:#171717}.contact{color:#171717;background:#f6f6f6;padding-top:6rem}.contact .section-index{color:#666}.contact-links{gap:2rem}.contact-links a{border-color:#aaa}.contact footer{border-color:#ddd}.article-page{max-width:900px;padding-top:9rem}.article-page>a{color:#555}.article-page h1{font-size:clamp(4rem,9vw,7rem);font-weight:500}.article-page article{color:#444;margin-top:3rem}.article-page article h2{color:#171717;letter-spacing:-.03em;margin-top:2.5rem;font-weight:500}@media (width<=900px){.project-list{grid-template-columns:1fr;gap:2rem}.project{padding-top:1.5rem}.project p{max-width:65ch}.main-nav{gap:1rem}}@media (width<=700px){.page-toolbar{flex-wrap:wrap;gap:1rem;padding-top:1rem}.main-nav{order:3;justify-content:center;gap:1.8rem;width:100%;margin:0;font-size:.8rem}.site-language{margin-left:auto}.hero h1{font-size:clamp(4rem,16vw,7rem)}.hero .micro,.hero-bottom{font-size:.75rem}.ribbon-controls{top:8rem}.ribbon-controls>span{display:none}.section{grid-template-columns:1fr;gap:2rem;padding-block:4rem}.note{padding:1.5rem}.contact-links{gap:1.5rem}.terminal-section{padding-block:4rem}.hero-art{opacity:.5}}
