@charset "UTF-8";
:root{color-scheme:dark;--bg:#0b0d12;--text:#eef0f4;--secondary:#d2d6de;--muted:#9aa1ad;--line:#1c2029;--blue:#2b6ff0;--pale:#86b0fa;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:106px}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.65}body,html{min-width:320px}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--pale);outline-offset:5px}::selection{background:#2b6ff0;color:white}img{display:block;max-width:100%}p,h1,h2,h3,h4,dl,dd{margin:0}.container{max-width:1200px;margin-inline:auto;padding-inline:24px}.texture{position:fixed;inset:0;z-index:2;pointer-events:none;background-image:url('assets/reference-texture.svg');background-size:200px 200px;opacity:.12}#cursor-trail{position:fixed;inset:0;width:100%;height:100%;z-index:150;pointer-events:none}.skip-link{position:fixed;z-index:200;top:10px;left:10px;padding:8px 16px;background:var(--blue);border-radius:8px;transform:translateY(-160%)}.skip-link:focus{transform:none}
.nav-shell{position:fixed;top:16px;left:24px;right:24px;z-index:30;pointer-events:none}.nav{height:56px;max-width:1152px;margin:auto;padding:5px 5px 5px 10px;display:flex;align-items:center;justify-content:space-between;border:1px solid #252a35;border-radius:999px;background:rgba(18,21,28,.86);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:max-width .6s var(--ease),background .6s var(--ease),box-shadow .6s var(--ease);pointer-events:auto}.nav.compact{max-width:928px;background:rgba(18,21,28,.94);box-shadow:0 12px 32px -12px #0009}.brand{height:32px;width:32px;display:grid;place-items:center;background:var(--blue);border-radius:10px}.brand svg{width:28px;height:28px}.nav-links{display:flex;gap:32px;margin-left:84px;font-size:14px;color:var(--muted)}.nav-links a{transition:color .2s}.nav-links a:hover,.nav-links a.active{color:var(--text)}.button{display:inline-flex;justify-content:center;align-items:center;gap:24px;padding:12px 22px;font-size:14px;line-height:20px;border-radius:999px;font-weight:600;transition:background .25s,box-shadow .25s}.blue{background:var(--blue);border:1px solid #5088f1;color:#fff;box-shadow:inset 0 1px 0 #fff2}.blue:hover{background:#397bf4;box-shadow:0 4px 24px #2b6ff02b}.outline{border:1px solid #2b313e;background:#11151c}.outline:hover{background:#1c2330;border-color:#414b60}.arrow{display:inline-block;font-size:19px;font-weight:400;transition:transform .3s var(--ease)}.button:hover .arrow{transform:translate(2px,-2px)}.nav-contact{height:44px;padding:10px 23px}
main{padding-top:132px}.hero h1{font-size:min(150px,calc((100vw - 48px)*.13));font-weight:700;line-height:1.04;letter-spacing:-.06em;white-space:nowrap}.intro{font-size:20px;line-height:1.6;color:var(--secondary);margin-top:36px;max-width:690px;letter-spacing:-.025em}.ticker{margin-top:72px;overflow:hidden;position:relative;touch-action:pan-y;cursor:grab;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.ticker.dragging{cursor:grabbing}.ticker-track{display:flex;width:max-content;gap:16px;will-change:transform}.ticker-group{display:flex;gap:16px}.ticker-card{height:220px;flex:none;width:300px;border-radius:20px;overflow:hidden;position:relative;user-select:none;background:#171c24}.ticker-card:nth-child(6n+2){width:340px}.ticker-card:nth-child(6n+3){width:240px}.ticker-card:nth-child(6n+4){width:300px}.ticker-card:nth-child(6n+5){width:320px}.ticker-card:nth-child(6n){width:260px}.ticker-card img{width:100%;height:100%;object-fit:cover;pointer-events:none}.ticker-label{position:absolute;left:12px;bottom:12px;right:12px;display:flex;align-items:center;gap:8px;max-width:max-content;padding:5px 12px;background:#0b0d12cc;backdrop-filter:blur(8px);border:1px solid #fff1;border-radius:999px;font-size:12px;opacity:0;transform:translateY(6px);transition:.3s cubic-bezier(.44,0,.56,1)}.ticker-card:hover .ticker-label,.ticker-card:focus-visible .ticker-label{opacity:1;transform:none}.metadata{margin-top:64px;padding-bottom:24px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);gap:20px 24px}.metadata dt,.eyebrow{font-family:Consolas,"Microsoft YaHei",monospace;font-size:12px;font-weight:500;letter-spacing:.09em;color:#7c828e}.metadata dd{font-size:14px;margin-top:5px;color:var(--secondary)}.status-dot{display:inline-block;vertical-align:middle;margin-right:8px;width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 9px #4ade8033}
.work-section{padding-top:160px;padding-bottom:0;scroll-margin-top:0}.section-heading{text-align:center;margin-bottom:48px}.section-heading .eyebrow{color:#93acd7}.section-heading h2{font-size:44px;font-weight:600;letter-spacing:-.045em;line-height:1.2;margin-top:16px}.section-description{font-size:16px;line-height:1.6;color:var(--muted);margin-top:24px}.featured-projects{display:flex;flex-direction:column;gap:24px}.project-card{height:700px;border-radius:32px;position:relative;overflow:hidden;box-shadow:0 40px 80px -40px #000c;background:#1a1e25;isolation:isolate}.project-card>img{width:100%;height:100%;object-fit:cover}.project-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#0b0d1280)}.project-caption{position:absolute;bottom:16px;left:16px;right:16px;border:1px solid #ffffff16;background:#0b0d12db;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:20px;padding:16px 16px 16px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px}.project-caption h3{font-size:22px;font-weight:500;line-height:1.4;letter-spacing:-.03em}.project-caption p{font-size:14px;color:#a8b0bf;margin-top:7px}.project-caption p span{padding:0 7px}.project-arrow{height:48px;width:48px;display:grid;place-items:center;font-size:26px;border:1px solid #3c4350;border-radius:50%;background:#ffffff05;transition:background .25s,border-color .25s,transform .35s var(--ease);flex-shrink:0}.project-card:hover .project-arrow{background:var(--blue);border-color:var(--blue);transform:rotate(45deg)}.all-work{display:flex;justify-content:center;margin-top:40px}.reveal{opacity:1;transform:none}.js-motion .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}.js-motion .project-card.reveal{transform:translateY(64px) scale(.97);transition-duration:1s;transition-delay:.1s}.js-motion .reveal.visible{opacity:1;transform:none}
.about-section{padding:180px 24px 120px;scroll-margin-top:-70px}.about-stack{max-width:650px;margin:auto;display:flex;flex-direction:column;gap:56px;position:relative;isolation:isolate}.portrait-card{height:660px;position:sticky;top:96px;flex-shrink:0;border-radius:28px;overflow:hidden;background:linear-gradient(160deg,#16357f,#2b6ff0 55%,#86b0fa)}.portrait-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.portrait-badge{position:absolute;bottom:16px;left:20px;font-size:12px;padding:8px 14px;background:#0b0d12cc;backdrop-filter:blur(8px);border:1px solid #fff2;border-radius:999px;color:#eef0f4}.story-card{position:relative;z-index:1;padding:40px;background:var(--bg);border:1px solid #191d26;border-radius:20px;box-shadow:0 -20px 60px #0002}.story-card>h2{font-size:38px;line-height:1.3;font-weight:500;letter-spacing:-.045em;margin:20px 0 24px}.story-card>p:not(.eyebrow){font-size:16px;color:var(--muted);line-height:1.85;margin-bottom:20px}.story-cta{margin-top:6px}.experience{margin-top:48px}.experience>.eyebrow{margin-bottom:24px}.job+.job{border-top:1px solid #1c2029;padding-top:24px;margin-top:24px}.job-date{font-size:13px;color:#7c828e;font-family:Consolas,monospace}.job h4{font-size:19px;line-height:1.4;font-weight:500;margin-top:10px}.job .company{font-size:14px;color:#c3c9d3;margin:4px 0 8px}.job>p:last-child{font-size:14px;line-height:1.8;color:var(--muted)}.skills{display:flex;flex-wrap:wrap;gap:8px;margin:32px 0 0;padding:0;list-style:none}.skills li{font-size:12px;border:1px solid #252a35;background:#131720;color:#b8c0ce;border-radius:999px;padding:6px 12px}
.footer{padding-top:72px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:32px;border-top:1px solid var(--line);padding-top:56px}.footer-name{font-size:21px;font-weight:600;letter-spacing:-.04em}.footer-intro>p{font-size:14px;color:var(--muted);line-height:1.8;margin-top:14px}.footer-intro>.footer-status{font-size:12px;color:var(--secondary);margin-top:20px}.footer-grid>div:not(:first-child)>a,.footer-grid>div:not(:first-child)>p{display:block;font-size:14px;color:var(--muted);margin-top:10px;overflow-wrap:anywhere}.footer-grid a:hover{color:var(--text)}.footer-grid .eyebrow{margin-bottom:19px}.footer-bottom{margin-top:64px;padding:24px 0 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:12px;color:#7c828e}
@media(min-width:810px) and (max-width:1199.98px){main{padding-top:128px}.metadata{grid-template-columns:repeat(2,1fr)}.project-card{height:600px}.portrait-card{height:480px;position:relative;top:0}.about-section{padding-top:120px}.work-section{padding-top:120px}.footer-grid{grid-template-columns:1.5fr 1fr;row-gap:40px}}
@media(max-width:809.98px){html{scroll-padding-top:90px}.container{padding-inline:16px}.nav-shell{top:12px;left:16px;right:16px}.nav{height:52px;padding:5px 5px 5px 9px}.brand{width:30px;height:30px;border-radius:9px}.brand svg{width:25px;height:25px}.nav-links{gap:20px;margin-left:26px;font-size:12px}.nav-contact{height:40px;padding:9px 15px;gap:10px;font-size:12px}.nav-contact .arrow{font-size:16px}main{padding-top:114px}.hero h1{font-size:calc((100vw - 32px)*.13);line-height:1.1;letter-spacing:-.06em}.intro{font-size:16px;line-height:1.75;margin-top:28px;max-width:520px}.desktop-break{display:none}.ticker{margin-top:40px;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}.ticker-card{height:150px;width:204px;border-radius:16px}.ticker-card:nth-child(6n+2){width:231px}.ticker-card:nth-child(6n+3){width:163px}.ticker-card:nth-child(6n+4){width:204px}.ticker-card:nth-child(6n+5){width:218px}.ticker-card:nth-child(6n){width:177px}.ticker-label{font-size:10px;left:8px;bottom:8px;padding:4px 9px}.metadata{grid-template-columns:1fr;gap:20px;margin-top:36px;padding-bottom:28px}.metadata dt{font-size:11px}.metadata dd{font-size:13px}.work-section{padding-top:88px}.section-heading{margin-bottom:32px}.section-heading h2{font-size:34px;margin-top:14px}.section-description{font-size:14px;margin-top:18px}.featured-projects{gap:20px}.project-card{height:520px;border-radius:24px}.project-caption{bottom:12px;left:12px;right:12px;padding:16px;border-radius:18px;gap:10px}.project-caption h3{font-size:18px;line-height:1.5}.project-caption p{font-size:11px;line-height:1.7;margin-top:5px}.project-caption p span{padding:0 3px}.project-arrow{width:36px;height:36px;font-size:22px}.all-work{margin-top:32px}.about-section{padding:100px 16px 64px;scroll-margin-top:-50px}.about-stack{gap:28px}.portrait-card{height:360px;position:relative;top:0;border-radius:24px}.portrait-card>img{object-position:center 38%}.portrait-badge{left:16px;font-size:11px}.story-card{padding:24px 16px;border-radius:20px}.story-card>h2{font-size:30px;margin:18px 0 22px}.story-card>p:not(.eyebrow){font-size:14px;line-height:1.9}.experience{margin-top:36px}.job h4{font-size:18px}.job .company,.job>p:last-child{font-size:13px}.job-date{font-size:12px}.skills li{padding:5px 10px;font-size:11px}.footer{padding-top:32px}.footer-grid{grid-template-columns:1fr 1fr;gap:36px 24px;padding-top:36px}.footer-intro{grid-column:1/-1}.footer-grid>div:last-child{grid-column:1/-1}.footer-grid>div:not(:first-child)>a,.footer-grid>div:not(:first-child)>p{font-size:13px}.footer-bottom{margin-top:40px;padding-bottom:24px;font-size:10px}.js-motion .project-card.reveal{transform:translateY(32px) scale(.98)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.js-motion .reveal,.js-motion .project-card.reveal{opacity:1;transform:none}#cursor-trail{display:none}}
body>main,body>footer{position:relative;z-index:3}
